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

lb3vh1jj  于 2023-04-20  发布在  Oracle
关注(0)|答案(1)|浏览(127)

我正在做一个项目,我需要使用Python从Oracle Business Intelligence(OBI)查询数据。OBI API是soap/wsdl。我已经能够从OBI列出某些细节,但还没有弄清楚如何获取实际数据。
我运行的是Windows 10,使用的是Visual Studio Code。Python 3.7.4。目前使用的是zeep模块,但使用的是具有相同限制的suds。
我已经尝试了几个不同的调用,但通常由于类型转换问题或不确定如何获取的参数而出错。

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

jfewjypa

jfewjypa1#

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

相关问题