6

私は現在、DB2 用に Oracle で開発されたアプリケーションを検証しています。2 つの別々のソースを維持したくないので、オラクルと db2 の両方で機能する BLOB をフィールドに挿入するクエリが必要です。アプリケーションが実行されている DB を区別するための識別子がありません。

相互に互換性のないutl_raw.cast_to_raw OracleとDB2で使用しました。CAST() as BLOB

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 に答える