使用 Python 3.7,从 Oracle Business Intelligence WSDL 获取数据



我正在做一个项目,我需要使用Python从Oracle商业智能(OBI(查询数据。OBI API 是 soap/wsdl。我已经能够列出来自OBI的某些细节,但还没有弄清楚如何获取实际数据。

我正在运行Windows 10,使用Visual Studio Code。蟒蛇 3.7.4.目前使用 zeep 模块,但使用了具有相同限制的泡沫。

我尝试了几个不同的调用,但由于类型转换问题或我不确定如何获取的参数,通常会收到错误。

from zeep import Client, Settings
settings = Settings(strict=False, xml_huge_tree=True)
client = Client(wsdl='http://obi_address:[port]/analytics-ws/saw.dll/wsdl/v12', settings=settings)
SAWSessionService = client.create_service('{urn://oracle.bi.webservices/v12}SAWSessionService','http://obi_address:[port]/analytics-ws/saw.dll?SoapImpl=nQSessionService')
sessionid = SAWSessionService.logon(obi_username,obi_password)
MetadataService = client.create_service('{urn://oracle.bi.webservices/v12}MetadataService','http://obi_address:[port]/analytics-ws/saw.dll?SoapImpl=metadataService')
sa_list=MetadataService.getSubjectAreas(sessionid)
for sa in sa_list:
sa_tbls= MetadataService.describeSubjectArea(sa.name,'IncludeTables',sessionid)
print(sa_tbls)

所以在这里我得到了每个主题领域的表格列表,但我不确定如何查询表中的数据。有人对此有任何经验吗?

我正在使用此处找到的文档,尽管并非所有调用都进行了描述。 https://docs.oracle.com/middleware/1221/biee/BIEIT/methods.htm#BIEIT237

我通过访问OBI Oracle数据库,调用OBI生成的SQL,并在Python中查询数据来解决这个问题,最初使用"cx_Oracle",直到更新为"oracledb"。

最新更新