我在pl / sql中的指定位置将xmltype插入另一个xmltype时遇到问题。
第一个变量v_xml的格式为:
<ord>
<head>
<ord_code>123</ord_code>
<ord_date>01-01-2015</ord_date>
</head>
</ord>
第二个v_xml2:
<pos>
<pos_code>456</pos_code>
<pos_desc>description</pos_desc>
</pos>
我的目的是得到这样的东西:
<ord>
<head>
<ord_code>123</ord_code>
<ord_date>01-01-2015</ord_date>
</head>
<!-- put the second variable in this place - after closing <head> tag -->
<pos>
<pos_code>456</pos_code>
<pos_desc>description</pos_desc>
</pos>
</ord>
我应该如何处理我的代码?
declare
v_xml xmltype;
v_xml2 xmltype;
begin
-- some code
-- some code
-- v_xml and v_xml2 has the form as I define above
end;
有人能帮助我解决这个问题吗?据我所知,有诸如insertchildxml,appendchildxml之类的功能或类似的功能……我在纯SQL中找不到很少的解决方案,但是我不知道如何在PL
/ SQL中移动它。
谢谢!
您可以使用提到的appendChildXML,如下所示:
declare
v_xml xmltype := xmltype('<ord>
<head>
<ord_code>123</ord_code>
<ord_date>01-01-2015</ord_date>
</head>
</ord>');
v_xml2 xmltype:= xmltype('<pos>
<pos_code>456</pos_code>
<pos_desc>description</pos_desc>
</pos>');
v_output xmltype;
begin
select appendChildXML(v_xml, 'ord', v_xml2)
into v_output from dual;
-- output result
dbms_output.put_line( substr( v_output.getclobval(), 1, 1000 ) );
end;
输出:
<ord>
<head>
<ord_code>123</ord_code>
<ord_date>01-01-2015</ord_date>
</head>
<pos>
<pos_code>456</pos_code>
<pos_desc>description</pos_desc>
</pos>
</ord>
采用这种方法: 我不会写: 因为它似乎依赖于访问器方法被命名为。是否可以使用代替?
问题内容: 我们有一个有一些特殊要求的项目,其中之一是从Oracle 10g数据库的XMLType数据库列中获取数据。 我们已经找到了使用JDBC的简单解决方案,但是由于所有数据访问都是通过JPA(使用的实现是EclipseLink)来完成,因此它会使应用程序有些混乱。 我们已经进行了一些研究,找到了一些解决方案,例如使用Converters和其他辅助类型,但是实现似乎有些复杂。 因此,我的问题是
问题内容: 有没有可以做到这一点的PHP函数? 我用来获取子字符串的位置,我想在该位置之后插入一个。 问题答案: $newstr = substr_replace($oldstr, $str_to_insert, $pos, 0);
我得到这个错误'ORA-01704:字符串文字太长',而我试图插入数据从SQL表在Oracle表。在我的Oracle表中,我有一个XMLTYPE列类型的列。当我创建表时,我指定了这样的XML列: 除此列之外,在它之前还有其他23列,当我从insert语句XML列中排除时,insert正在传递。XML列包含表中所有其他23列的XML格式数据。我是否应该在XML列中为长度或其他内容添加一些附加规范?
问题内容: 我想在XML文档上有一条select语句,并且一栏应该返回我 每个节点 的 路径 。 例如,给定数据 导致 我想要这样的结果: 我看不到如何做到这一点。我认为必须正确地进行两件事: 我可以提取从单个操作或方法,或做我有串魔术做到这一点? 什么是正确的XPath表达式,这样我就可以获取整个元素路径 (如果可以的话),例如。侵略? 也许我还没有完全理解。可能是我需要一种不同的方法,但我看不
问题内容: Oracle文档声称它将XMLType存储为BINARY XML比存储CLOB更紧凑。但是,如何找出二进制xml占用了多少空间? 因此,似乎是某种指针或LOB定位器的大小,并将二进制XML解压缩为文本。但是二进制XML本身的存储大小如何? 请帮助,表大小为340GB,因此值得研究存储选项… 问题答案: Oracle二进制XML格式对应于缩写为CSX的“紧凑型模式感知XML格式”。编码数