2

次のようなOracle XML関数の使用に問題があります

xmlelementxmlaggxmlattributes

例えば:

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 タグの作成

4

1 に答える 1