6

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

utl_raw.cast_to_raw 在 oracle 和CAST() as BLOBDB2 中使用过,它们是互不兼容的。

4

1 回答 1

7

您将无法找到使用某种类型转换的通用 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();

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

于 2013-05-09T12:49:42.557 回答