मैं जावा के लिए varchar2 की एक प्रकार की तालिका को निम्नानुसार मैप करने में सक्षम था:
-
किसी भी PLSQL पैकेज के बाहर एक नया प्रकार बनाएँ और आवश्यक अनुमतियाँ प्रदान करें।
CREATE OR REPLACE TYPE STRARRAY AS TABLE OF VARCHAR2 (100); / GRANT all ON MYSCHEMA.STRARRAY TO MYUSER1; / commit;
-
एक पीएलएसक्यूएल फ़ंक्शन बनाएं जो स्ट्रैरे को स्वीकार/रिटर्न करता है। यह पैकेज विनिर्देश में घोषित किया गया था और पैकेज बॉडी में पूर्ण रूप से लिखा गया था। हालांकि मैंने सरणी को बाहर होने की घोषणा की, मेरे कार्यान्वयन में मैं वास्तव में केवल पीएलएसक्यूएल कॉल से आउटपुट का उपयोग करता हूं।
PROCEDURE getArr(arr_var IN OUT strarray) IS counter NUMBER := 1; BEGIN arr_var := new strarray(); WHILE counter <= 10 LOOP arr_var.extend(); arr_var(counter) := 'my data string'; END LOOP; END getArr;
-
जावा में प्रक्रिया को कॉल करें। इस उदाहरण में वेरिएबल कॉन डेटा टाइप कनेक्शन का है और इसे पहले ही इनिशियलाइज़ किया जा चुका है। मैं Oracle डेटाबेस के विरुद्ध jdbc थिन क्लाइंट चला रहा हूँ।
CallableStatement proc = null; String sql = "{ call myPackage.getArr(?) }"; try{ proc = conn.prepareCall(sql); proc.registerOutParameter(1, OracleTypes.Array, "MYSCHEMA.STRARRAY"); proc.execute(); Array arrOut = proc.getArray(1); for (int num=0; num<10; num++){ System.out.println(arrOut[num]); }finally{ proc.close(); }