1

私はpostgresqlデータベースで作業しています.Javaコードのみを使用してMYSQL Blobデータ型をPostgreSQLバイトに変換する必要があります.これを行う方法はありますか?

4

2 に答える 2

2
//(assuming you have a ResultSet named RS)
PreparedStatement psMySql = connMySql.prepareStatement("select myBlob from myTable where ...");
Blob blob = rs.getBlob("myBlob");

int blobLength = (int) blob.length();  
byte[] blobAsBytes = blob.getBytes(1, blobLength);

PreparedStatement psPostresql = connPostgresql.prepareStatement("INSERT INTO myNewTable VALUES (?, ?)");
psPostresql.setString(1, myId);
psPostresql.setBytes(2, blobAsBytes);
psPostresql.executeUpdate();

//release the blob and free up memory.
blob.free();
于 2012-08-30T07:57:09.800 に答える
0

私の知る限り、どちらも JDBC ドライバーをサポートしています。また、JDBC には BLOB を処理する標準的な方法があります。私はDB2でいつもやっています。

そう:

  • MySQL に接続する
  • 選択を行います。ブロブ列が FIELD_BLOB だとしましょう
  • rs.getBytes("FIELD_BLOB")
  • Postgre に接続する
  • PreparedStatement を実行する
  • この preparestatement で setBytes を呼び出し、MySQL から取得したバイトを渡します

getBytes、setBytes が機能しない場合は、入力および出力ストリームを使用してみてください。

于 2012-08-30T07:54:14.030 に答える