次のようなOracle XML関数の使用に問題があります
xmlelement
、xmlagg
、xmlattributes
例えば:
select
XMLELEMENT(
"OrdrList",
XMLAGG(
XMLELEMENT(
"IDs",
XMLATTRIBUTES(
USERCODE AS "usrCode",
VALDATE AS "validityDate"
)
)
)
) from TMP
/
少数のメッセージを返すときに機能するため、コードは正しいようです
はい、「long」、「pagesize」、「linesize」などを設定しようとしましたが、約の完全なセットを取得できませんでした。500.000 XML メッセージ (つまり、テーブル行)。
背景資料 (Jürgen Sieben による「Oracle SQL」など) を読むと、関数が大規模なデータ セット用に設計されていないようです。Sieben 氏は、これらは小さなクエリ (最大 1 MB の出力サイズ) にのみ使用すると説明しており、その上で「オブジェクト指向関数」を使用することを推奨していますが、どれを使用するかについては説明していません。
誰かがこれの経験があり、上記の XML 関数が機能しているか、代替手段を知っていますか?
以下のアドバイスに従って: [...] を介して CLOB に変換すると.getclobval(0, 2) from TMP
、テーブル全体が繰り返されます。遅いですが、完了です。
私は訂正をしなければなりません:getclobval
より長いリストを提供しますが、まだ完全ではありません. 上記の Oracle XML 関数の実装/ドキュメントの品質に対する自信が弱いため、データベースから標準のファイル出力を作成し、自分で XML 変換を実装します。
新しい更新: 犯人を見つけました: XMLAGG
! 私がそれを取り出すと、データベースは迅速に、適切に、段階的に完全に解析されます。XMLAGG には実際には複雑な仕事がないので奇妙です: 着信および発信 XML タグの作成