私はMSSQLデータベースのテーブルを埋めるためのステートメントを持っています。セミコロンで区切られたいくつかの値を結合します。MSSQLの 'FOR XML PATH'をOracleに変換
INSERT INTO XXAArcDocSWSB (ArcDocINr, SWorte)
SELECT A.ArcDocINr, B.SWorte FROM XXAArcDoc A
LEFT JOIN (
SELECT DISTINCT T2.ArcDocINr,
SUBSTRING(
(
SELECT ';' + T1.SWort AS [text()]
FROM (SELECT D.ArcDocINr, SW.SWort FROM XXAArcDoc D, XXAArcSW SW WHERE D.ArcDocINr = SW.ArcDocINr) T1
WHERE T1.ArcDocINr = T2.ArcDocINr
For XML PATH ('')
), 2, 255) [SWorte]
FROM (SELECT D.ArcDocINr, SW.SWort FROM XXAArcDoc D, XXAArcSW SW WHERE D.ArcDocINr = SW.ArcDocINr) T2
) B ON A.ArcDocINr = B.ArcDocINr
これをOracleに変換するための十分な知識がありません。それは私にMSSQLと同じ出力を与えるはずです。 誰かが私を助けることができますか?
編集:ここでは
は、いくつかのサンプルデータです:
XXAArcDoc:
ArcDocINr | ...
----------|----------
1 |
2 |
3 |
. |
. |
. |
XXAArcSW:
ArcSWINr | ArcDocINr | SWort
---------|-----------|---------
6 | 1 | Müller
7 | 1 | 100
8 | 2 | 111111
9 | 2 | 13579
10 | 2 | 002
11 | 3 | TM-AH
そして、ここでは私の所望の出力です:
ArcDocINr | SWorte
----------|---------
1 | Müller;100
2 | 111111;13579;002
3 | TM-AH
をあなたはLISTAGGを探しています – GurV
いくつかのサンプルデータを表示することをお勧めします。さらに重要なのは、 。 – jeff6times7
@ jeff6times7サンプルデータと希望の出力で更新 –