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

जटिल ओरेकल जेडीबीसी बीएलओबी हैंडलिंग

पहले मामले में आपके द्वारा उल्लिखित अद्यतन दृष्टिकोण को शुद्ध जेडीबीसी कोड का उपयोग करके फिर से लिखा जा सकता है और इस प्रकार ओरेकल-विशिष्ट कक्षाओं पर आपकी निर्भरता कम हो जाती है। यह मददगार हो सकता है अगर आपके ऐप को डेटाबेस अज्ञेयवादी होना चाहिए।

public static void updateBlobColumn(Connection con, String table, String blobColumn, byte[] inputBytes, String idColumn, Long id) throws SQLException {
  PreparedStatement pStmt = null;
  ResultSet rs = null;
  try {
    String sql = 
      " SELECT " + blobColumn + 
      " FROM " + table + 
      " WHERE " + idColumn + " = ? " +
      " FOR UPDATE";
    pStmt = con.prepareStatement(sql, 
      ResultSet.TYPE_FORWARD_ONLY, 
      ResultSet.CONCUR_UPDATABLE);
    pStmt.setLong(1, id);
    rs = pStmt.executeQuery();
    if (rs.next()) {
      Blob blob = rs.getBlob(blobColumn);
      blob.truncate(0);
      blob.setBytes(1, inputBytes);
      rs.updateBlob(blobColumn, blob);
      rs.updateRow();
    }
  }
  finally {
    if(rs != null) rs.close();
    if(pStmt != null) pStmt.close();
  }
}

एमएसएसक्यूएल के लिए मैं समझता हूं कि लॉकिंग सिंटैक्स अलग है:

String sql = 
  " SELECT " + blobColumn + 
  " FROM " + table + " WITH (rowlock, updlock) " + 
  " WHERE " + idColumn + " = ? "


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मैं यह SQLSyntaxErrorException क्यों प्राप्त करता हूं:ORA-00933:जब मैं इस JDBC क्वेरी को करने का प्रयास करता हूं तो SQL कमांड ठीक से समाप्त नहीं होता है?

  2. ओरेकल plsql:एक्सएमएल को कैसे पार्स करें और टेबल में डालें?

  3. दिनांक डेटा प्रकार के लिए बराबर (=) बनाम LIKE

  4. अद्यतन पर निम्नलिखित पर ORA - 00907 त्रुटि प्राप्त करना

  5. Oracle REPLACE() फ़ंक्शन कैरिज-रिटर्न और लाइन-फ़ीड्स को हैंडल नहीं कर रहा है