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

4

我正在开发一个项目,需要使用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
1个回答

0

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接