使用Java为DB2和Oracle插入BLOB

Saj*_*aju 6 java oracle db2 blob jdbc

我目前正在验证在Oracle for DB2上开发的应用程序.由于我们不想维护两个单独的源,因此我需要一些查询来将blob插入到字段中,这在oracle和db2中都有效.我没有任何标识符来区分运行应用程序的DB.

utl_raw.cast_to_raw 在oracle和CAST() as BLOBDB2中使用了互不兼容的东西.

a_h*_*ame 6

您将无法找到使用某种类型转换的常见SQL.但是你可以使用JDBC的"普通"SQL来做到这一点setBinaryStream()

PreparedStatement pstmt = connection.prepareStatement(
   "insert into blob_table (id, blob_data) values (?, ?)";

File blobFile = new File("your_document.pdf");
InputStream in = new FileInputStream(blobFile);

pstmt.setInt(1, 42);
pstmt.setBinaryStream(2, in, (int)blobFile.length());
pstmt.executeUpdate();
connection.commit();
Run Code Online (Sandbox Code Playgroud)

您可以使用setBinaryStream()相同的方式使用UPDATE语句.