में कनेक्शन प्राप्त करने का प्रयास करते समय मैं वर्तमान में ओरेकल में जावा संग्रहीत प्रक्रियाओं के साथ काम कर रहा हूं और अपने जावा के भीतर कनेक्शन प्राप्त करने का प्रयास करते समय कुछ अजीब व्यवहार देख रहा हूं कोड।java.lang.ArithmeticException ओरेकल 11.2.0.2.0 (64 बिट)
मेरा जावा एक जार फ़ाइल में पैक किया गया है और फिर loadjava
कमांड लाइन उपयोगिता का उपयोग करके ओरेकल में तैनात किया गया है। एक package
तब डेटाबेस में बनाया गया है जो नामित जावा क्लास में प्रत्येक विधि को कॉल विनिर्देशों के माध्यम से पीएल/एसक्यूएल फ़ंक्शन में मैप करता है।
कुछ कॉलम जिनके साथ मैं काम कर रहा हूं CLOB
एस हैं। (oracle.sql.CLOB
के रूप में कॉल विनिर्देश में मैप) एक String
में जावा में मैं इस CLOB
का मूल्य उद्धृत करने का प्रयास:
private static String getStringFromCLOB(CLOB clob) throws SQLException {
long length = clob.length();
return clob.getSubString(1, (int) length);
}
मुझे इस कोड मैं निम्नलिखित स्टैक ट्रेस * एसक्यूएल में प्रदर्शित करने के साथ ही चलाएँ:
java.lang.ArithmeticException:/by zero
at oracle.jdbc.driver.T2SConnection.<init>(T2SConnection.java:107)
at oracle.jdbc.driver.T2SDriverExtension.getConnection(T2SDriverExtension.java:31)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:481)
at oracle.jdbc.driver.OracleDriver.defaultConnection(OracleDriver.java:505)
at oracle.sql.DatumWithConnection.getPhysicalConnection(DatumWithConnection.java:53)
at oracle.sql.DatumWithConnection.getInternalConnection(DatumWithConnection.java:177)
at oracle.sql.CLOB.getDBAccess(CLOB.java:1383)
at oracle.sql.CLOB.length(CLOB.java:197)
इससे पहले कि मैं सिर्फ Exception
का संदेश दिखाई दे रहा था तो मैं एक try/catch
साथ अपमानजनक विधि की सामग्री को लपेटा तो मैं System.out
करने के लिए पूर्ण स्टैक ट्रेस डंप कर सकता है।
यह ध्यान देने योग्य है कि मैंने ओरेकल 11.2.0.1.0 (32 बिट) पर यह काम किया है लेकिन यह ओरेकल 11.2.0.2.0 (64 बिट) पर काम नहीं कर रहा है।
मेरे पास अन्य जावा समर्थित पीएल/एसक्यूएल function
भी समस्या के बिना काम कर रहा है। यह केवल वे लोग हैं जो असफल कनेक्शन बनाने का प्रयास करते हैं।
मैंने <ORACLE_HOME>\jdbc\lib
में एक नज़र डाली है और जार, हालांकि इसे नामित किया गया है, इन दो वितरणों में अलग दिखता है। निर्देशिका में जार कर रहे हैं (11.2.0.1.0 आकार और 11.2.0.2.0 आकार दिखाया गया है):
ojdbc5.jar
(1,950KB | 1,983KB)ojdbc5_g.jar
(3,010KB | 3,271KB)ojdbc5dms.jar
(2,374KB | 2,489KB)ojdbc5dms_g.jar
(3,030KB | 3,291KB)ojdbc6.jar
(2,062KB | 2,102KB)ojdbc6_g.jar
(3,323KB | 3,782KB)ojdbc6dms.jar
(2,594 केबी | 2,698KB)ojdbc6dms_g.jar
(3,344KB | 3,805KB)simplefan.jar
(20KB | 20KB) < - शायद ही
इन जार के प्रकट फ़ाइलों की पुष्टि वे विशेष संस्करण के लिए निर्माण कर रहे हैं, यानी 11.2.0.1.0 या 11.2.0.2.0। क्या यह संभव है कि 11.2.0.2.0 में एक बग पेश किया गया हो? या यह उपयोगकर्ता होने की अधिक संभावना है, यानी मेरा, त्रुटि :-)
इसके अलावा, oracle.jdbc.driver.T2SConnection
कक्षा कहां रहती है?
किसी भी मदद/मार्गदर्शन की बहुत सराहना की। यदि आपको अधिक जानकारी की जरूरत है तो कृपया मुझे बता है।
ड्राइवर में बग की तरह दिखता है, ऑरैकल की रिपोर्ट करें या कोशिश करें/पकड़ें, अनदेखा करें ... (या दोनों) – bestsss