संग्रह का उपयोग करें (वे IN
. जैसे 1000 आइटम तक सीमित नहीं हैं खंड है):
SELECT COLUMN_VALUE AS id
FROM TABLE(
SYS.ODCIVARCHAR2LIST(
'id123', 'id8923', 'id32983', 'id032098', 'id308230', 'id32983289'
)
)
SYS.ODCIVARCHAR2LIST
और SYS.ODCINUMBERLIST
संग्रह प्रकार हैं जो SYS
. में दिए गए हैं स्कीमा।
आप इसे सीधे उस तालिका में शामिल कर सकते हैं जिसमें आप SELECT
हैं DUAL
. का उपयोग करने की आवश्यकता के बिना से आईएनजी टेबल:
SELECT y.*
FROM your_table y,
TABLE(
SYS.ODCIVARCHAR2LIST(
'id123', 'id8923', 'id32983', 'id032098', 'id308230', 'id32983289'
)
) i
WHERE y.id = i.COLUMN_VALUE;
यदि आप एक संग्रह प्रकार बना सकते हैं तो आपको TABLE
. की भी आवश्यकता नहीं है अभिव्यक्ति और इसका उपयोग सीधे WHERE
. में कर सकते हैं MEMBER OF
. का उपयोग करते हुए क्लॉज ऑपरेटर:
CREATE OR REPLACE TYPE stringlist IS TABLE OF VARCHAR2(200);
/
SELECT *
FROM yourtable
WHERE id MEMBER OF stringlist(
'id123', 'id8923', 'id32983', 'id032098', 'id308230', 'id32983289'
);
आप मानों को बाइंड पैरामीटर के रूप में भी पास कर सकते हैं - मेरा उत्तर यहां देखें