IBMi系统DB2 SQL调用WEB接口拉取XML返回空结果问题求助
代码错误定位
- 错误1:
XMLPARSE中传入的是XSD schema定义文件地址,而非实际返回XML数据的业务接口地址,获取到的内容根本不是汇率数据,自然查询不到结果 - 错误2:
XMLNAMESPACES配置错误,将接口地址错误声明为名为doc的命名空间,doc不属于命名空间范畴,是XMLTABLE中传递的XML文档的别名,不需要在此处定义 - 错误3:XPath查询路径错误,多了不存在的
doc/前缀,目标XML的根节点直接是wechselkurse,不需要加该前缀 - 潜在问题:需确认当前数据库账号有调用
SYSTOOLS.HTTPGETBLOB函数的权限,且数据库所在服务器可正常访问目标接口地址
修正后可运行代码
SELECT * FROM XMLTABLE( XMLNAMESPACES (DEFAULT 'https://www.backend-rates.ezv.admin.ch/xmldaily'), '/wechselkurse/devise' PASSING XMLPARSE ( DOCUMENT SYSTOOLS.HTTPGETBLOB( -- 此处替换为你需要查询的日期对应的接口地址即可 'https://www.backend-rates.ezv.admin.ch/api/xmldaily?d=20210923&locale=it', '' ) ) COLUMNS code Char(3) PATH 'code', waehrung char(10) PATH 'waehrung', kurs decfloat PATH 'kurz' ) WHERE code = 'USD'
内容的提问来源于stack exchange,提问作者Nifriz
相关产品推荐
相关产品推荐

