如何使用本机Oracle XML DB Web服务删除空值?
我使用的是原生Oracle XML DB Web服务(使用PL/SQL函数和Web服务)。 我想删除空值(在输出中不放任何内容(没有XML元素))。 它与Oracle 11.2.0.1.0配合使用,但与Oracle 11.2.0.3.0不配合使用 只是想澄清一下。。。我不想使用带有PL/SQL的web服务,我想将我的PL/SQL包/过程/函数发布为web服务 希望有人能帮助我。 多谢各位 在本例中,列“country”为空 Oracle 11.2.0.1.0(这就是我想要的):如何使用本机Oracle XML DB Web服务删除空值?,xml,web-services,oracle,oracle11g,Xml,Web Services,Oracle,Oracle11g,我使用的是原生Oracle XML DB Web服务(使用PL/SQL函数和Web服务)。 我想删除空值(在输出中不放任何内容(没有XML元素))。 它与Oracle 11.2.0.1.0配合使用,但与Oracle 11.2.0.3.0不配合使用 只是想澄清一下。。。我不想使用带有PL/SQL的web服务,我想将我的PL/SQL包/过程/函数发布为web服务 希望有人能帮助我。 多谢各位 在本例中,列“country”为空 Oracle 11.2.0.1.0(这就是我想要的): 3. 骚扰 陶
3.
骚扰
陶工
Oracle 11.2.0.3.0:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<GET_PERSONOutput xmlns="http://xmlns.oracle.com/orawsv/TESTSTUFF/GET_PERSON">
<RETURN>
<PERSON>
<PERSON_ID>3</PERSON_ID>
<FIRST_NAME>Harry</FIRST_NAME>
<LAST_NAME>Potter</LAST_NAME>
<COUNTRY/>
</PERSON>
</RETURN>
</GET_PERSONOutput>
</soap:Body>
</soap:Envelope>
3.
骚扰
陶工
使用XMLFOREST而不是XMLELEMENT将隐藏任何空数据的标记
生成所需SOAP请求的示例查询如下所示:
SELECT XMLFOREST(XMLFOREST(p.id as "PERSON_ID",
p.first_name as "FIRST_NAME",
p.last_name as "LAST_NAME",
p.country as "COUNTRY"
) as "PERSON")
FROM PERSON_TABLE p WHERE p.id=3
我不知道为什么,但是XMLELEMENT在XML中留下了空标记。希望这对你有用
添加:一篇关于XMLFOREST与XMLELEMENT的有用文章-给所有有相同问题的人: 我为此问题创建了一个Oracle服务请求,Oracle支持人员说: 不存在通过程序/功能进行访问的权限。这里是WSDL 由无法指定空行为的函数定义驱动
希望这些信息对您有所帮助。谢谢您的回答。但是,如果您使用“原生Oracle XML DB Web服务”,数据库将为您完成这些任务。您可以编写包、过程或函数,而不直接使用XMLELEMENT或XMLFOREST。以下是一篇有用的文章:
SELECT XMLFOREST(XMLFOREST(p.id as "PERSON_ID",
p.first_name as "FIRST_NAME",
p.last_name as "LAST_NAME",
p.country as "COUNTRY"
) as "PERSON")
FROM PERSON_TABLE p WHERE p.id=3