如何在 Oracle 中生成 xml null 值? [英] How to generate xml null values in Oracle?
本文介绍了如何在 Oracle 中生成 xml null 值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我是通过 plsql
生成 XML
的新手.如何使用 null
值生成 XML
?我需要以下输出.
I'm new for XML
generation through plsql
.How can generate XML
using null
values?
I required below output.
DealUserDescription i:nil="true"/
DealUserDescription i:nil="true"/
推荐答案
创建 nil xml 元素的功能,我相信它可以改进:
Function for creating nil xml element, i'm sure it can be improved:
create function add_xml_element(
p_name in varchar2,
p_value in varchar2,
p_namespaces in varchar2 default null,
p_nil_prefix in varchar2 default null,
p_nil_namespace in varchar2 default null) return XMLType is
l_result XMLType;
begin
if p_value is not null then
l_result := XMLType('<' || p_name || ' ' || p_namespaces || '>'||p_value||'</' || p_name || '>');
elsif p_nil_prefix is not null and p_nil_namespace is not null then
l_result := XMLType('<' || p_name || ' ' || p_namespaces || ' ' || p_nil_namespace || ' ' || p_nil_prefix || ':nil="true"/>');
else
raise_application_error(-20001, 'Nil prefix or namespace not provided');
end if;
return l_result;
end;
和plsql脚本来测试它:
and plsql script to test it:
declare
l_xml xmlType;
cursor c_build_xml(cp_value in varchar2) is
select
xmlElement("root",
add_xml_element(
'node',
cp_value,
null,
'i',
'xmlns:i="default"'))
from
dual;
begin
open c_build_xml('nodevalue');
fetch c_build_xml
into l_xml;
close c_build_xml;
dbms_output.put_line(l_xml.getClobVal());
open c_build_xml(null);
fetch c_build_xml
into l_xml;
close c_build_xml;
dbms_output.put_line(l_xml.getClobVal());
end;
/
脚本输出如下:
<root>
<node>nodevalue</node>
</root>
<root>
<node xmlns:i="default" i:nil="true"/>
</root>
这篇关于如何在 Oracle 中生成 xml null 值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文