在Oracle SQL中将xpath值选择为单独的行
发布时间:2020-12-12 13:11:43 所属栏目:百科 来源:网络整理
导读:我需要从存储在Oracle数据库的CLOB列中的 XML中选择一些值. 我能想到的最好的是以下内容: select extract(xmltype(COLUMN),'xpath-expression').getStringVal() as XMLVAL from TABLE t; 问题是当XPATH选择多个节点时,值会连接在一起.我需要将每个选定的节
我需要从存储在Oracle数据库的CLOB列中的
XML中选择一些值.
我能想到的最好的是以下内容: select extract(xmltype(COLUMN),'xpath-expression').getStringVal() as XMLVAL from TABLE t; 问题是当XPATH选择多个节点时,值会连接在一起.我需要将每个选定的节点放在一个单独的行上.显然连接必须发生在getStringVal()中,我使用它,因为我需要在我的客户端(而不是XMLType)中有字符串.我应该使用什么而不是getStringVal()? 编辑:请注意这里有一个类似的问题:Oracle Pl/SQL: Loop through XMLTYPE nodes – 但我无法将它应用于我的案例.它使用两种不同的XPATH表达式,分离原理尚不清楚. EDIT2:XML非常复杂,但基本上我需要找到“一些值”条目 <string name="SOME_KEY" value="some value"/> 在许多其他元素下埋葬的元素.我使用XPATH // * [@ name =“SOME_KEY”] / @值,它成功找到具有SOME_KEY属性的所有XML元素的value属性. 试试这个.SELECT EXTRACTVALUE (x.COLUMN_VALUE,'xpath-expression') FROM TABLE ( SELECT XMLSEQUENCE ( xmltype (column).EXTRACT ('xpath-expression')) FROM t) x; 样品在http://sqlfiddle.com/#!4/87af2/1 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |