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

जावा:Oracle से ब्लॉब पढ़ना

आप ResultSet.getBinaryStream() . के माध्यम से इनपुटस्ट्रीम ऑब्जेक्ट प्राप्त कर सकते हैं विधि।

PreparedStatement prepareStatement = con.prepareStatement("select * from SMD_DATESTREEMAP");
ResultSet rs=prepareStatement.executeQuery();
      
while(rs.next())
{
   oracle.jdbc.driver.OracleBlobInputStream bos = (oracle.jdbc.driver.OracleBlobInputStream) rs.getBinaryStream(2) ;
       
   ObjectInputStream out = new ObjectInputStream(bos);
      
   map = (TreeMap<DateTime, Integer>) out.readObject();
   ...
}

आप बाइनरी स्ट्रीम के बजाय बाइट ऐरे लिख सकते हैं।

ByteArrayOutputStream bos = new ByteArrayOutputStream() ;
ObjectOutputStream out = new ObjectOutputStream(bos);
out.writeObject(map);
out.flush();
out.close();
byte[] buf = bos.toByteArray();
      
PreparedStatement prepareStatement = con.prepareStatement("INSERT INTO SMD_DATESTREEMAP VALUES(?,?)");
prepareStatement.setInt(1, 1);
prepareStatement.setBytes(2, buf);
prepareStatement.executeUpdate();
prepareStatement.close();

और बाइट सरणी पढ़ें:

while(rs.next())
{ 
    byte []buf=rs.getBytes(2);
    ByteArrayInputStream bos=new ByteArrayInputStream(buf);
    ObjectInputStream out = new ObjectInputStream(bos);
    map=(TreeMap<DateTime, Integer>)out.readObject();
    ..
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एसक्यूएल इनर चुनिंदा बयानों में शामिल हों

  2. ORA-12557 TNS:प्रोटोकॉल एडेप्टर लोड करने योग्य नहीं है

  3. एसक्यूएल - अधिकतम मूल्य वाले कॉलम वाली पंक्ति का चयन कैसे करें

  4. Oracle के लिए MyBatis बैच इन्सर्ट/अपडेट करें

  5. OracleDataSource बनाम Oracle UCP PoolDataSource