将两个 XML 容器信息合并到一个 SQL 视图中
Combine two XML containers information in one SQL View
一段时间以来,我一直在寻找 SQL 中的连接可能性,以连接两个 xml 容器的父节点。
父节点:
select t.id,x."FA_SCHLUESSEL"
from xmldocs t
, xmltable('/Qualitaetsbericht/Organisationseinheiten_Fachabteilungen/Organisationseinheit_Fachabteilung/Fachabteilungsschluessel'
passing t.doc
columns
FA_Schluessel varchar2(12) path 'FA_Schluessel'
) x
子节点:
select t.id,x."OPS_301",x."ANZAHL"
from xmldocs t
, xmltable('/Qualitaetsbericht/Organisationseinheiten_Fachabteilungen/Organisationseinheit_Fachabteilung/Prozeduren/Verpflichtend/Prozedur'
passing t.doc
columns
OPS_301 varchar2(12) path 'OPS_301'
, Anzahl varchar2(40) path 'Anzahl'
) x
我对找到这个问题的答案感到非常沮丧。任何想法都非常受欢迎。提前致谢。
Select
Extract(doc, '/Qualitaetsbericht/Organisationseinheiten_Fachabteilungen/Organisationseinheit_Fachabteilung/Fachabteilungsschluessel/FA_Schluessel' as FA_Schluessel,
Extract(doc, '/Qualitaetsbericht/Organisationseinheiten_Fachabteilungen/Organisationseinheit_Fachabteilung/Prozeduren/Verpflichtend/Prozedure/OPS_301') as OPS_301,
Extract(doc, '/Qualitaetsbericht/Organisationseinheiten_Fachabteilungen/Organisationseinheit_Fachabteilung/Prozeduren/Verpflichtend/Prozedure/Anzahl') as Anzahl
From xmldocs
SELECT id,
d.*
FROM XMLDocs x,
XMLTable(
'/Data'
PASSING XMLQuery(
'for $i in /Qualitaetsbericht/Organisationseinheiten_Fachabteilungen/Organisationseinheit_Fachabteilung/Prozeduren/Verpflichtend/Prozedur
return <Data>
{$i/OPS_301}
{$i/Anzahl}
{$i/../../../Fachabteilungsschluessel/FA_Schluessel}
</Data>'
PASSING doc
RETURNING CONTENT
)
COLUMNS FA_Schluessel varchar2(12) path 'FA_Schluessel',
OPS_301 varchar2(12) path 'OPS_301',
Anzahl varchar2(40) path 'Anzahl'
) d;
一段时间以来,我一直在寻找 SQL 中的连接可能性,以连接两个 xml 容器的父节点。
父节点:
select t.id,x."FA_SCHLUESSEL"
from xmldocs t
, xmltable('/Qualitaetsbericht/Organisationseinheiten_Fachabteilungen/Organisationseinheit_Fachabteilung/Fachabteilungsschluessel'
passing t.doc
columns
FA_Schluessel varchar2(12) path 'FA_Schluessel'
) x
子节点:
select t.id,x."OPS_301",x."ANZAHL"
from xmldocs t
, xmltable('/Qualitaetsbericht/Organisationseinheiten_Fachabteilungen/Organisationseinheit_Fachabteilung/Prozeduren/Verpflichtend/Prozedur'
passing t.doc
columns
OPS_301 varchar2(12) path 'OPS_301'
, Anzahl varchar2(40) path 'Anzahl'
) x
我对找到这个问题的答案感到非常沮丧。任何想法都非常受欢迎。提前致谢。
Select
Extract(doc, '/Qualitaetsbericht/Organisationseinheiten_Fachabteilungen/Organisationseinheit_Fachabteilung/Fachabteilungsschluessel/FA_Schluessel' as FA_Schluessel,
Extract(doc, '/Qualitaetsbericht/Organisationseinheiten_Fachabteilungen/Organisationseinheit_Fachabteilung/Prozeduren/Verpflichtend/Prozedure/OPS_301') as OPS_301,
Extract(doc, '/Qualitaetsbericht/Organisationseinheiten_Fachabteilungen/Organisationseinheit_Fachabteilung/Prozeduren/Verpflichtend/Prozedure/Anzahl') as Anzahl
From xmldocs
SELECT id,
d.*
FROM XMLDocs x,
XMLTable(
'/Data'
PASSING XMLQuery(
'for $i in /Qualitaetsbericht/Organisationseinheiten_Fachabteilungen/Organisationseinheit_Fachabteilung/Prozeduren/Verpflichtend/Prozedur
return <Data>
{$i/OPS_301}
{$i/Anzahl}
{$i/../../../Fachabteilungsschluessel/FA_Schluessel}
</Data>'
PASSING doc
RETURNING CONTENT
)
COLUMNS FA_Schluessel varchar2(12) path 'FA_Schluessel',
OPS_301 varchar2(12) path 'OPS_301',
Anzahl varchar2(40) path 'Anzahl'
) d;