无法从 SerialBlob 转换为 BLOB

Cannot Convert from SerialBlob to BLOB

我正在将文档转换为字节数组,然后将该字节数组转换为 Oracle BLOB 对象。但是当我转换时出现错误。

代码 -

ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
PdfWriter.getInstance(document, byteArrayOutputStream);
byte[] pdfBytes = byteArrayOutputStream.toByteArray();
BLOB blob = new javax.sql.rowset.serial.SerialBlob(pdfBytes);

错误-

 cannot convert from `SerialBlob` to BLOB

您在这里混合了 Oracle 和 Java 7 JDBC 类型。 BLOB 是 Oracle 发明的东西,它不太适合 JDBC 设计的其余部分,这就是为什么你不能同时使用两者的原因之一。

使用 java.sql.Blob 或仅使用 Oracle 的类型(即将 SerialBlob 替换为 oracle.sql.BLOB 加上必要的流)。

相关:

  • Using Large Objects - Oracle JDBC 教程
  • Why I cannot cast oracle BLOB from native java Blob
  • Overcomplicated oracle jdbc BLOB handling