2010-08-17 11 views
9

ओरेकल जेडीबीसी ड्राइवर क्या जावा डेटा प्रकार ओरेकल एसक्यूएल डेटा प्रकार NUMERIC को असाइन करता है? क्या यह NUMERIC प्रकार के आकार के साथ बदलता है?क्या जावा डेटा प्रकार ओरेकल एसक्यूएल डेटा प्रकार NUMERIC से मेल खाता है?

उत्तर

10

दूसरों जैसा कि पहले ही कहा है: ड्राइवर BigDecimal के लिए सब कुछ नक्शे, भले ही यह संख्या (38) (जो BigInteger को मैप किया जा सकता है)

रूप में परिभाषित किया गया है लेकिन यह क्या चालक नक्शे पता लगाने के लिए बहुत आसान है। ResultSet के कॉलम पर बस getObject() करें और देखें कि ड्राइवर किस वर्ग को उत्पन्न करता है।

कुछ की तरह:

 
ResultSet rs = statement.executeQuery("select the_number_column from the_table"); 
if (rs.next()) 
{ 
    Object o = rs.getObject(1); 
    System.out.println("Class: " + o.getClass().getName()); 
}
1

यह थोड़ी देर हो गया है, लेकिन मेरा मानना ​​है कि यह जावा में बिगिनट है। यह बिगडिसीमल है। मुझे याद है कि क्लासकास्टेसेप्शन आपको एक संकेत देगा ...

+0

आप लगता है कि 'ClassCastException' में मदद मिलेगी, लेकिन इस मामले में, हम हाइबरनेट का उपयोग क्वेरी निष्पादित करने के लिए और विधि रिटर्न' Object'। –

+0

http://stackoverflow.com/questions/3504751/what-object-type-does-spring-hibernate-template-execute-method-return-for-a-count पर, मैं अपने विशेष मामले के लिए एक प्रश्न अधिक विशिष्ट पूछता हूं जो स्प्रिंग हाइबरनेट टेम्पलेट का उपयोग करता है। –

2

the Oracle documentation के अनुसार यह java.math.BigDecimal है।


आप oracle.sql.NUMBER उपयोग करने की कोशिश है "लेकिन BigDecimal के लिए मेरी डाली एक ClassCastException फेंकता है"?

+0

मैंने यही सोचा, लेकिन 'बिगडिसीमल' पर मेरी कास्ट 'क्लासकास्ट अपवाद' फेंकता है। –

+0

उस तालिका के अनुसार, हालांकि ओरेकल डेटा प्रकार हमेशा 'NUMERIC' होता है, जेडीबीसी डेटा प्रकार अंतर्निहित SQL डेटा प्रकार पर निर्भर करता है जो 'इंटेगर' या 'स्मालिन' के लिए 'int' होगा। –

+0

मैं पता लगाने के लिए प्रकार का निरीक्षण करूंगा। –

संबंधित मुद्दे