无法使用插入语句插入大于 3200 的 Oracle BLOB 数据

Unable to insert oracle BLOB data greater than 3200 using Insert Statement

我正在处理现有项目,需要为 Oracle 数据库准备 DML。 但是由于大于 4000 字节的巨大尺寸,我无法为 Blob 数据准备 Insert 语句。谁能帮帮我?

N.B:我收到这个错误,ORA-06550:字符串文字太长。

只有 INSERT 语句,没有 java 程序。我只需要它来准备像插入语句这样的 DML。

我的插入语句:

INSERT INTO APP_PROF('ID', 'IMAGE') VALUES('2', TO_BLOB('4654655665....'))

此图像 blob 数据大于 45000 字节

提前致谢。

是的。使用流,而不是 String/byte 数组来插入 BLOB。像这样:

PreparedStatement ps = conn.prepareStatement("insert into blobs (blob_value) values (?)");
InputStream in = new StringBufferInputStream(aLagrgeStringValue);
ps.setBinaryStream(1,in,(int)in.length());
ps.execute();

我在这里发现的问题是您正在使用字符串值插入 Blob 列,而您收到的错误是输入字符串的 限制错误 而不是table 的 blob 列。

请参考以下link进一步说明。

How to convert VARCHAR2 to BLOB inside Oracle 11g PL/SQL after ORA-06502