Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menyelesaikan Ralat Oracle ORA-01795: Terlalu Banyak Ungkapan dalam Klausa IN?
Mengatasi Ralat ORA-01795: Ungkapan Maksimum dalam Senarai
Ralat ORA-01795 timbul apabila pertanyaan cuba menentukan lebih daripada 1000 ungkapan dalam klausa IN. Ini boleh berlaku apabila memilih data daripada jadual berdasarkan sebilangan besar nilai.
Untuk menangani isu ini, berbilang klausa IN boleh digunakan sebagai penyelesaian. Pertanyaan yang diubah suai akan membahagikan nilai kepada kumpulan yang lebih kecil, menggunakan berbilang klausa IN untuk menanyakan data dalam ketulan.
Sebagai contoh, pertimbangkan contoh berikut:
select field1, field2, field3 from table1 where name in ( 'value1', 'value2', ... 'value10000+' );
Pertanyaan ini akan menghasilkan ralat ORA-01795 disebabkan bilangan ungkapan yang berlebihan dalam klausa IN. Untuk menyelesaikan masalah ini, pertanyaan boleh ditulis semula menggunakan berbilang klausa IN:
select field1, field2, field3 from table1 where name in ('value1', 'value2', ..., 'value999') or name in ('value1000', ..., 'value1999') or ...;
Dengan membahagikan nilai kepada kumpulan yang lebih kecil dan menggunakan berbilang klausa IN, pertanyaan boleh memintas had ungkapan 1000 dan mendapatkan semula data yang dikehendaki dengan berkesan .
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat Oracle ORA-01795: Terlalu Banyak Ungkapan dalam Klausa IN?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!