Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengendalikan Ralat 'ORA-01489' Apabila Menggunakan LISTAGG dalam Oracle SQL?
Selesaikan ralat terlalu panjang rentetan fungsi Oracle LISTAGG dengan bijak
Dalam Oracle SQL Developer, apabila menggunakan fungsi LISTAGG untuk mengagregat data, anda mungkin menghadapi ralat "ORA-01489: hasil penggabungan rentetan terlalu panjang". Ralat ini berlaku apabila keluaran bercantum melebihi had dalaman (biasanya 4000 aksara).
Untuk mengatasi had ini, fungsi XMLAGG boleh digunakan sebagai alternatif. Fungsi ini membenarkan pengagregatan data ke dalam dokumen XML, dengan itu memintas sekatan aksara.
<code class="language-sql">SELECT RTRIM(XMLAGG(XMLELEMENT(E,colname,',').EXTRACT('//text()') ORDER BY colname).GetClobVal(),',') AS LIST FROM tablename;</code>
Pertanyaan ini menggunakan fungsi XMLAGG untuk mengagregatkan nilai lajur yang ditentukan (colname) ke dalam dokumen XML. Kemudian, gunakan kaedah GetClobVal() untuk menukar dokumen XML kepada jenis data CLOB, dengan itu mengalih keluar had aksara.
Output akhir ialah rentetan nilai agregat yang dipisahkan koma yang disimpan sebagai nilai CLOB, membenarkan pemprosesan output gabungan yang besar.
Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan Ralat 'ORA-01489' Apabila Menggunakan LISTAGG dalam Oracle SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!