ホームページ >データベース >mysql チュートリアル >Oracle SQLでLISTAGGを使用するときに「ORA-01489」エラーを処理する方法は?
Oracle LISTAGG 関数の文字列が長すぎるエラーを賢く解決します
Oracle SQL Developerで、LISTAGG関数を使用してデータを集計すると、「ORA-01489: 文字列連結の結果が長すぎます」エラーが発生する場合があります。このエラーは、連結された出力が内部制限 (通常は 4000 文字) を超えると発生します。
この制限を回避するには、XMLAGG 関数を代わりに使用できます。この関数を使用すると、データを XML ドキュメントに集約できるため、文字制限が回避されます。
<code class="language-sql">SELECT RTRIM(XMLAGG(XMLELEMENT(E,colname,',').EXTRACT('//text()') ORDER BY colname).GetClobVal(),',') AS LIST FROM tablename;</code>
このクエリは、XMLAGG 関数を使用して、指定された列 (colname) の値を XML ドキュメントに集計します。次に、GetClobVal() メソッドを使用して XML ドキュメントを CLOB データ型に変換し、文字制限を削除します。
最終出力は CLOB 値として保存された集計値のカンマ区切り文字列であり、大規模な結合出力の処理が可能になります。
以上がOracle SQLでLISTAGGを使用するときに「ORA-01489」エラーを処理する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。