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

0jdbc6 JDBCthin ड्राइवरों से कस्टम ऑब्जेक्ट रिटर्न प्रकारों के साथ Oracle PL/SQL प्रक्रिया को कॉल करना

मुझे आखिरकार (दूसरों की थोड़ी मदद से) इसका जवाब मिल गया। यह तीन भागों में आया:

पहला यह था कि मुझे एक का उपयोग करने की आवश्यकता थी:

OracleCallableStatement stmt = (OracleCallableStatement) conn.prepareCall(query);

साधारण JDBC CallableStatement के बजाय मैं उपयोग करने का प्रयास कर रहा था।

दूसरा भाग यह था कि मुझे अपना "आउट" पैरामीटर निम्नानुसार पंजीकृत करना था:

stmt.registerOutParameter(2, OracleTypes.STRUCT, "DATA_SUMMARY_TAB");

तीसरा भाग, और यह ऊपर के भाग 2 में निहित है, यह था कि "DATA_SUMMARY_TAB" को UPPER CASE में होना था। यदि आप इसे लोअरकेस में रखते हैं, तो आपको एक गुप्त त्रुटि संदेश इस प्रकार मिलता है:

java.sql.SQLException: invalid name pattern: MYTEST.data_summary_tab

oracle.jdbc.oracore.OracleTypeADT.initMetadata(OracleTypeADT.java:553) पर oracle.jdbc.oracore.OracleTypeADT.init(OracleTypeADT.java:469) पर oracle.sql.StructDescriptor.initPickler.javatDescriptor.java:390) पर oracle.sql.StructDescriptor.(StructDescriptor.java:320)

बस इतना ही।

साथ ही, कृपया ध्यान दें कि हमारा कस्टम ऑब्जेक्ट प्रकार किसी भी पैकेज में नहीं था। यदि ऐसा है, तो आपको तीसरे पैरामीटर को थोड़ा सा हैक करने की आवश्यकता हो सकती है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ओरेकल प्रक्रिया के लिए सरणी पास करें

  2. मैं बच्चों से माता-पिता तक एसक्यूएल में पेड़ जैसी संरचना में डेटा कैसे जोड़ सकता हूं?

  3. निम्नलिखित Oracle त्रुटि का क्या अर्थ है:अमान्य स्तंभ अनुक्रमणिका

  4. एसक्यूएल इन क्लॉज 1000 आइटम सीमा

  5. ओरेकल में खाली स्ट्रिंग