Plsql 为什么dbms_lob.fragment_insert在我的脚本中不起作用?
具有blob列的简单表Plsql 为什么dbms_lob.fragment_insert在我的脚本中不起作用?,plsql,Plsql,具有blob列的简单表 create table table01 ( myCode VARCHAR2(10), myValue blob ); insert into table01(myCode, myValue) values('abc', hextoraw('414243')); 我正在尝试使用dbms\u lob.fragment\u insert修改blob值 declare l_b BLOB; begin SELECT myValue INTO l_b
create table table01 (
myCode VARCHAR2(10),
myValue blob
);
insert into table01(myCode, myValue) values('abc', hextoraw('414243'));
我正在尝试使用dbms\u lob.fragment\u insert修改blob值
declare
l_b BLOB;
begin
SELECT myValue
INTO l_b
FROM table01
WHERE myCode = 'abc'
FOR UPDATE;
dbms_lob.fragment_insert(l_b, 3, 1+dbms_lob.getlength(l_b), hextoraw('787878'));
end;
/
我看到的例外如下
declare
ERROR at line 1:
ORA-43856: Unsupported LOB type for SECUREFILE LOB operation
ORA-06512: at "SYS.DBMS_LOB", line 1159
ORA-06512: at line 10
43856. 0000 - "Unsupported LOB type for SECUREFILE LOB operation"
Document: YES
Cause: A LOB that is not a SECUREFILE was used in a SQL statement or
in a call where a SECUREFILE LOB was expected.
Action: Convert the LOB to a SECUREFILE LOB or do not use this keyword
or call.
我对Oracle DB的了解不足以理解我做错了什么。是否可以按我尝试的方式使用dbms_lob.fragment_insert?我的问题的答案可能是dbms_lob.fragment_insert不能用于修改未存储为SecureFile的Blob:( 当我以以下方式创建表时
create table table01 (
myCode VARCHAR2(10),
myValue blob
) lob(myValue) store as SECUREFILE;
我的剧本行得通
遗憾的是,我正在搜索pl/sql解决方案,以修改大Blob,而不访问数据库主机文件系统,并将Blob存储为非安全文件。我认为dbms_lob.fragment_insert可能是一个解决方案可能与“谢谢你链接的问题”重复。它与我的问题联系松散。我自己已经回答了我的问题