Oracle बाइंड वैरिएबल एक-से-एक संबंध हैं, इसलिए आपको प्रत्येक मान के लिए एक परिभाषित करने की आवश्यकता होगी जिसे आप IN
में शामिल करना चाहते हैं खंड:
SELECT JOB
FROM EMP
WHERE JOB IN (:JOB1, :JOB2, :JOB3, ..., :JOB3000)
आपको यह भी पता होना चाहिए कि Oracle IN
केवल अधिकतम 1,000 मानों का समर्थन करता है, या आप प्राप्त करेंगे:
सबसे अच्छा विकल्प एक टेबल (व्युत्पन्न, अस्थायी, वास्तविक, या दृश्य) बनाना है, और अपने इच्छित मूल्यों को प्राप्त करने के लिए इसमें शामिल होना है। आईई:
SELECT a.job
FROM EMP a
JOIN (SELECT :JOB1 AS col FROM DUAL
UNION ALL
SELECT :JOB2 FROM DUAL
UNION ALL
SELECT :JOB3 FROM DUAL
UNION ALL
...
UNION ALL
SELECT :JOB3000 FROM DUAL) b ON b.col = a.job