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

हाइबरनेट का उपयोग करके Oracle में बड़े BLOBs (>100MB) को कैसे बनाए रखें?

"ब्लॉब" प्रकार का उपयोग करके मानचित्र बनाने के प्रयास में मुझे वही समस्याएं आ रही थीं। मेरे द्वारा हाइबरनेट साइट पर की गई पोस्ट का लिंक यहां दिया गया है:https://forum.hibernate.org/viewtopic.php?p=2452481#p2452481

हाइबरनेट 3.6.9
Oracle ड्राइवर 11.2.0.2.0
Oracle डेटाबेस 11.2.0.2.0

समस्या को ठीक करने के लिए मैंने कोड का उपयोग किया जिसमें ब्लॉब के लिए एक कस्टम उपयोगकर्ता प्रकार था, मेरे पास वापसी प्रकार java.sql.Blob था।

इस UserType के प्रमुख विधि कार्यान्वयन यहां दिए गए हैं:

public Object nullSafeGet(ResultSet rs, String[] names, Object owner) throws HibernateException, SQLException {

   Blob blob = rs.getBlob(names[0]);
   if (blob == null)
      return null;

   return blob;
}

public void nullSafeSet(PreparedStatement st, Object value, int index)
     throws HibernateException, SQLException {
   if (value == null) {
      st.setNull(index, sqlTypes()[0]);
   }
   else {
      InputStream in = null;
      OutputStream out = null;
      // oracle.sql.BLOB
      BLOB tempBlob = BLOB.createTemporary(st.getConnection(), true, BLOB.DURATION_SESSION);
      tempBlob.open(BLOB.MODE_READWRITE);
      out = tempBlob.getBinaryOutputStream();
      Blob valueAsBlob = (Blob) value;
      in = valueAsBlob.getBinaryStream();
      StreamUtil.toOutput(in, out);
      out.flush();
      StreamUtil.close(out);
      tempBlob.close();
      st.setBlob(index, tempBlob);
      StreamUtil.close(in);
   }
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. तालिका नाम में plsql पैरामीटर के रूप में गुजर रहा है

  2. ऑरैकल में व्यू कैसे बनाएं

  3. मैक ओएस/एक्स पर पर्यावरण चर सेट किए बिना ओरेकल इंस्टेंट क्लाइंट स्थापित करना?

  4. Oracle:फ़ंक्शन आधारित अनुक्रमणिका चयनात्मक विशिष्टता

  5. स्तंभों की अनिश्चित संख्या पर UNPIVOT