我花了几天时间寻找以下问题的简单解决方案,我需要一些帮助。我有一个包含两列的 Oracle 表,recid(帐号)作为主键,xmlrecord 存储所有 xml 数据。我正在尝试使用 SQL 查询为我们的应用程序导出具有多值项的值。排除数据损坏,如果有 c1 m="1" 等,总会有相应的 c2 m="1" 和 c3 m="1" 等等。该表太大而无法多次点击以提取每个项目,因此我需要在一次访问该行时将它们全部从 xmlrecord 中提取出来。我已经尝试过内部连接 (1=1) 和 xmltables,但总是在返回的数据中以 NULLS 结束,或者在新的一行上出现每个新匹配。从顶层提取价值不'
我们的基表数据结构:
RECID XMLRECORD
-----------------------------------
0000001 <row><c1>test</c1><c2>test2</c2>....</row>
0000002 <row><c1>test</c1><c2>test2</c2>....</row>
由于没有多值字段,上述记录可以正常工作。我苦苦挣扎的地方是存储在 XMLRecord 中的数据如下所示:
<row>
<c1>test1</c1>
<c1 m=1>test1_2</c1>
<c2>test2</c2>
<c2 m=1>test2_2</c2>
<c3>test3</c3>
<c3 m=1>test3_2</c3>
</row>
我想要的输出格式如下:
RECID Col1 Col2 Col3
-----------------------------------
0000003 test1 test2 test3
0000003 test1_2 test2_2 test3_2
0000004 test1 test2 test3
0000004 test1_2 test2_2 test3_2