Pisah rentetan kepada berbilang baris dalam pangkalan data Oracle
Pengenalan
Memisahkan rentetan yang dipisahkan koma kepada berbilang baris ialah tugas biasa dalam pemprosesan data. Dalam Oracle 10g dan 11g, terdapat pelbagai cara untuk mencapai matlamat ini dengan cekap.
Pecahan berbilang lajur
Untuk memisahkan rentetan yang mengandungi berbilang nilai kepada berbilang lajur, anda boleh menggunakan gabungan REGEXP_REPLACE, REGEXP_SUBSTR dan pertanyaan hierarki.
Pertanyaan:
<code class="language-sql">WITH temp AS ( SELECT name, project, error FROM your_table ) SELECT name, project, TRIM(REGEXP_SUBSTR(error, '[^,]+', 1, levels.column_value)) AS new_error FROM temp, TABLE(CAST( MULTISET( SELECT level FROM dual CONNECT BY level <= REGEXP_COUNT(error, ',') + 1 ) AS sys.odcinumberlist )) levels WHERE levels.column_value <= REGEXP_COUNT(error, ',') + 1;</code>
Arahan:
REGEXP_COUNT
dalam pertanyaan yang dioptimumkan) Kesimpulan
Kaedah yang dipertingkatkan ini menyediakan cara yang fleksibel untuk memisahkan rentetan berbilang lajur kepada berbilang baris dalam Oracle 10g dan 11g. Ia menggunakan fungsi terbina dalam Oracle dan teknik lanjutan seperti pertanyaan hierarki untuk mengendalikan tugas manipulasi rentetan yang kompleks dengan cekap.
Atas ialah kandungan terperinci Bagaimana untuk Memisahkan Rentetan Dibatasi Koma kepada Berbilang Baris dalam Oracle?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!