使用Java为DB2和Oracle插入BLOB

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

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

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

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

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