ORA-01795: Mengatasi Had Ungkapan dalam Senarai
Apabila cuba menanyakan pangkalan data dengan berbilang nilai menggunakan klausa IN, anda mungkin menghadapi "ORA-01795: bilangan maksimum ungkapan dalam senarai ialah 1000 ralat." Ralat ini timbul apabila bilangan nilai dalam klausa IN melebihi had 1000.
Penyelesaian: Bahagi dan Takluk
Untuk memintas sekatan ini, adalah perlu untuk bahagikan senarai nilai kepada beberapa kumpulan yang lebih kecil. Penyelesaian berikut boleh dilaksanakan:
Sebagai contoh, pertimbangkan pertanyaan:
SELECT field1, field2, field3 FROM table1 WHERE name IN ( 'value1', 'value2', ... 'value10000+' );
Boleh ditulis semula menggunakan berbilang klausa IN seperti berikut:
SELECT field1, field2, field3 FROM table1 WHERE name IN ('value1', 'value2', ..., 'value999') OR name IN ('value1000', ..., 'value1999') OR ...;
Dengan membahagikan senarai nilai kepada bahagian yang lebih kecil, pertanyaan boleh dilaksanakan tanpa menemui ORA- ralat 01795. Penyelesaian ini menyediakan penyelesaian yang mudah untuk mengendalikan senarai besar nilai dalam pertanyaan pangkalan data.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan ORA-01795: Bilangan Maksimum Ungkapan dalam Senarai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!