我正确地将pl/sql中的孩子添加到xml结构中,如下所示。XMLType pl/sql添加孩子
<DATA>
<CHILDRENS>
<CHILDRENS_DEF lname="smith">
<CHILD_KOL no="1" name="Id" desc="Id" typ="NUMBER"/>
<CHILD_KOL no="2" name="Fname" desc="Fname" typ="VARCHAR2"/>
</CHILDRENS_DEF>
<CHILDRENS_DATA>
<CHILD_DATA no="1">
<CHILD_COL_VALUE no="1" name="Id">1</CHILD_COL_VALUE>
<CHILD_COL_VALUE no="2" name="Fname">Christopher</CHILD_COL_VALUE>
</CHILD_DATA>
<CHILD_DATA no="2">
<CHILD_COL_VALUE no="1" name="Id">1</CHILD_COL_VALUE>
<CHILD_COL_VALUE no="2" name="Fname">Alice</CHILD_COL_VALUE>
</CHILD_DATA>
<CHILD_DATA no="3">
<CHILD_COL_VALUE no="1" name="Id">1</CHILD_COL_VALUE>
<CHILD_COL_VALUE no="2" name="Fname">John</CHILD_COL_VALUE>
</CHILD_DATA>
</CHILDRENS_DATA>
</CHILDRENS>
<CHILDRENS>
<CHILDRENS_DEF lname="mushroom">
<CHILD_KOL no="1" name="Id" desc="Id" typ="NUMBER"/>
<CHILD_KOL no="2" name="Fname" desc="Fname" typ="VARCHAR2"/>
</CHILDRENS_DEF>
<CHILDRENS_DATA>
<CHILD_DATA no="1">
<CHILD_COL_VALUE no="1" name="Id">1</CHILD_COL_VALUE>
<CHILD_COL_VALUE no="2" name="Fname">Arthur</CHILD_COL_VALUE>
</CHILD_DATA>
</CHILDRENS_DATA>
</CHILDRENS>
</DATA>
我想将孩子添加到CHILDRENS,其中CHILDRENS_DEF = lname =蘑菇。 当我做这样的事情:
UPDATE xml_childrens
SET CLOBXMLCOL = INSERTCHILDXML(CLOBXMLCOL, 'DATA/CHILDRENS','CHILD_DATA',
XMLType('<CHILD_DATA no="2">
<CHILD_COL_VALUE no="1" name="Id">2</CHILD_COL_VALUE>
<CHILD_COL_VALUE no="2" name="Fname">Adele</CHILD_COL_VALUE>
</CHILD_DATA>'))
我给所有家庭添加新的孩子。我如何才能为lname =蘑菇添加CHILD_DATA。 问题2:我如何计算CHILD_DATA的家人?
你对XML的定义有什么灵活性吗?如果'lname'是'CHILD_DATA'的某个父节点的属性,例如,看起来'CHILDRENS'节点定义了一个所以'lname'属于'CHILDRENS'的属性。 XPath表达式并不旨在向您显示具有符合某些条件的兄弟节点的节点。 – 2012-03-20 09:24:10
我不能改变这个结构。因为这是移动设备导入数据的一部分。我想做一些程序,这将是从触发器调用自动生成这个XML。现在我手动操作: – dbuser 2012-03-20 09:51:53