संग्रह का उपयोग करें
VARIABLE कर्सर REFCURSOR;DECLARE your_collection SYS.ODCIVARCHAR2LIST:=SYS.ODCIVARCHAR2LIST();BEGIN your_collection.EXTEND( 10000 ); 1 में मैं के लिए .. 10000 लूप -- संग्रह को पॉप्युलेट करें। your_Collection(i) :=DBMS_RANDOM.STRING('x', 20); अंत लूप; OPEN :चयन के लिए कर्सर t.* your_table t INNER JOIN TABLE(your_collection) c ON t.id =c.COLUMN_VALUE;END;/PRINT कर्सर;
या जावा के माध्यम से वही काम करना:
आयात करें .sql.ARRAY; आयात ओरेकल। कनेक्शन कॉन =DriverManager.getConnection ("jdbc:oracle:पतला:@ लोकलहोस्ट:1521:XE", "उपयोगकर्ता नाम", "पासवर्ड"); स्ट्रिंग [] आईडी ={"1", "2", "3"}; ArrayDescriptor des =ArrayDescriptor.createDescriptor ("SYS.ODCIVARCHAR2LIST", con); रेडीडस्टेटमेंट सेंट =con.prepareStatement("सेलेक्ट टी.* अपने_टेबल टी इनर जॉइन टेबल से (:your_collection) c ON t.id =c.COLUMN_VALUE"); // प्रक्रिया के लिए एक सरणी पास करना - ((OraclePreparedStatement) st).setARRAYAtName("your_collection", new ARRAY(des, con, ids)); परिणामसेट कर्सर =st.executeQuery (); जबकि (कर्सर.नेक्स्ट ()) {इंट आईडी =कर्सर.getInt(1); डबल कॉलम 1 =कर्सर.गेट डबल (2); डबल कॉलम 2 =कर्सर.गेट डबल (3); System.out.println ( String.format ("आईडी:% 5d", आईडी)); System.out.println( String.format("Column1:%s", column1 )); System.out.println ( String.format ("कॉलम 2:% s", कॉलम 2)); } } पकड़ें (ClassNotFoundException | SQLException e) { System.out.println(e); } }}