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

JDBC ResultSet को टेबल एलियास के साथ कॉलम मिलते हैं

JDBC केवल कॉलम को क्वेरी में निर्दिष्ट के अनुसार नाम देगा - यह तालिका के नाम आदि के बारे में नहीं जानता है।

आपके पास दो विकल्प हैं:

विकल्प 1: क्वेरी में कॉलम को अलग-अलग नाम दें, यानी

SELECT
    a.columnName as columnNameA,
    b.columnName as columnNameB,
    ...
from table1 a, table2 b where (WHATEVER)

फिर अपने जावा कोड में कॉलम उपनाम देखें:

resultSet.getString("columnNameA");
resultSet.getString("columnNameB");


विकल्प 2: कॉलम स्थिति का संदर्भ लें JDBC API को आपके कॉल में:

resultSet.getString(1);
resultSet.getString(2);

ध्यान दें कि JDBC API एक-आधारित का उपयोग करता है अनुक्रमणिका - यानी वे 1 . से गिने जाते हैं (0 . से नहीं जावा इंडेक्स की तरह), इसलिए 1 . का उपयोग करें पहले कॉलम के लिए, 2 दूसरे कॉलम के लिए, आदि


मैं विकल्प 1 की अनुशंसा करता हूं, क्योंकि नामित कॉलम को संदर्भित करना सुरक्षित है:कोई व्यक्ति क्वेरी में कॉलम का क्रम बदल सकता है और यह चुपचाप आपके कोड को तोड़ देगा (आप गलत कॉलम तक पहुंच रहे होंगे लेकिन आपको पता नहीं होगा) , लेकिन अगर वे कॉलम के नाम बदलते हैं, तो आपको रनटाइम पर कम से कम "ऐसा कोई कॉलम नहीं" अपवाद मिलेगा।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle डेटाबेस में JAR फ़ाइल कैसे लोड करें?

  2. ORA-12514 TNS:श्रोता वर्तमान में कनेक्ट डिस्क्रिप्टर में अनुरोधित सेवा के बारे में नहीं जानता है

  3. सी # से आउट-पैरामीटर के रूप में रेफ कर्सर के साथ ओरेकल फ़ंक्शन को कैसे कॉल करें?

  4. ORACLE अद्यतन ट्रिगर के बाद:ORA-04091 उत्परिवर्तित तालिका त्रुटि को हल करना

  5. DLL "OraOps10.dll" लोड करने में असमर्थ