我在 postgresql 数据库中工作,我需要仅使用 java 代码将 MYSQL Blob 数据类型转换为 PostgreSQL bytea 有没有办法做到这一点?
问问题
1788 次
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 回答