ホームページ >データベース >mysql チュートリアル >Oracle SQL で LISTAGG を使用する場合の ORA-01489 エラーを解決する方法

Oracle SQL で LISTAGG を使用する場合の ORA-01489 エラーを解決する方法

Susan Sarandon
Susan Sarandonオリジナル
2025-01-18 16:51:13586ブラウズ

How to Overcome ORA-01489 Error When Using LISTAGG in Oracle SQL?

Oracle SQL LISTAGG 関数と ORA-01489 エラー

LISTAGG 関数は、Oracle SQL Developer 内で文字列を連結するのに便利ですが、「ORA-01489: 文字列連結の結果が長すぎます」エラーを生成する可能性があります。この制限は、LISTAGG の出力が最大 4000 文字に制限されていることに起因します。

XMLAGG を使用したソリューション

この 4000 文字の制限を克服するには、より柔軟な代替手段として XMLAGG 関数を使用します。

<code class="language-sql">SELECT RTRIM(XMLAGG(XMLELEMENT(E, colname, ',').EXTRACT('//text()') ORDER BY colname).GetClobVal(), ',') AS LIST
FROM tablename;</code>

XMLAGG は CLOB データ型を返し、非常に長い文字列長を処理できるため、ORA-01489 エラーが排除されます。 このアプローチは、LISTAGG.

によって課される制約なしで、広範なデータセットを効果的に集約します。

以上がOracle SQL で LISTAGG を使用する場合の ORA-01489 エラーを解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。