Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

ओरेकल एसक्यूएल में दोहरी से 10,000 अद्वितीय आईडी की सूची का चयन कैसे करें

संग्रह का उपयोग करें (वे 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'
                    );

आप मानों को बाइंड पैरामीटर के रूप में भी पास कर सकते हैं - मेरा उत्तर यहां देखें



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle डेटाबेस में अनुमत कनेक्शन की अधिकतम संख्या की जाँच कैसे करें?

  2. सी # से ओरेकल प्रक्रिया में सरणी पास करना

  3. Oracle डाटाबेस में PL/SQL Ref Cursors का परिचय

  4. ROWDTOCHAR () Oracle में फ़ंक्शन

  5. DBMS_SCHEDULER.CREATE_JOB प्रक्रिया के साथ एक प्रक्रिया कैसे निष्पादित करें