Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menyelesaikan Ralat Oracle ORA-01795: Terlalu Banyak Ungkapan dalam Klausa IN?

Bagaimana untuk Menyelesaikan Ralat Oracle ORA-01795: Terlalu Banyak Ungkapan dalam Klausa IN?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-04 05:32:40259semak imbas

How to Solve Oracle ORA-01795 Error: Too Many Expressions in IN Clause?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn