Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Java:Đọc Blob từ Oracle

Bạn có thể lấy đối tượng InputStream qua ResultSet.getBinaryStream() phương pháp.

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();
   ...
}

Bạn có thể viết mảng byte thay vì dòng nhị phân.

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();

và đọc mảng byte:

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. Các thủ tục được lưu trữ trên SQL Server từ Oracle®

  2. Điền một bảng PL / SQL từ một khối trong các biểu mẫu D2k của Oracle

  3. Nhóm theo các giá trị theo thứ tự

  4. Hợp nhất / Kết hợp nhiều tệp PDF thành một tệp PDF trong Oracle bằng gói PLPDF_TOOLKIT PL / SQL

  5. Cách cập nhật bảng trong oracle