1

我在 postgresql 数据库中工作,我需要仅使用 java 代码将 MYSQL Blob 数据类型转换为 PostgreSQL bytea 有没有办法做到这一点?

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
  • 做一个选择。假设 blob 列是 FIELD_BLOB
  • rs.getBytes("FIELD_BLOB")
  • 连接到 Postgres
  • 做一个 PreparedStatement
  • 在这个preparestatement上调用setBytes,传入你从MySQL得到的字节

如果 getBytes、setBytes 不起作用,请尝试使用输入和输出流。

于 2012-08-30T07:54:14.030 回答