Fungsi Oracle SQL LISTAGG dan Ralat ORA-01489
Fungsi LISTAGG
, berguna untuk menggabungkan rentetan dalam Oracle SQL Developer, boleh menjana ralat "ORA-01489: hasil penggabungan rentetan terlalu panjang". Had ini berpunca daripada output LISTAGG
yang dihadkan kepada maksimum 4000 aksara.
Penyelesaian menggunakan XMLAGG
Untuk mengatasi had 4000 aksara ini, gunakan fungsi XMLAGG
sebagai alternatif yang lebih fleksibel:
<code class="language-sql">SELECT RTRIM(XMLAGG(XMLELEMENT(E, colname, ',').EXTRACT('//text()') ORDER BY colname).GetClobVal(), ',') AS LIST FROM tablename;</code>
XMLAGG
mengembalikan jenis data CLOB, yang mampu mengendalikan panjang rentetan yang jauh lebih besar, sekali gus menghapuskan ralat ORA-01489
. Pendekatan ini mengagregatkan set data yang luas dengan berkesan tanpa kekangan yang dikenakan oleh LISTAGG
.
Atas ialah kandungan terperinci Bagaimana untuk Mengatasi Ralat ORA-01489 Apabila Menggunakan LISTAGG dalam Oracle SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!