使用Java为DB2和Oracle插入BLOB

时间:2013-05-09 12:43:26

标签: java oracle jdbc db2 blob

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

我在oracle中使用utl_raw.cast_to_raw,在DB2中使用了CAST() as BLOB,它们是互不兼容的。

1 个答案:

答案 0 :(得分:6)

您无法找到使用某种投射的常见SQL。但你可以用" plain" SQL使用JDBC 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();

您可以setBinaryStream()语句使用UPDATE