我有一个采用BLOB作为参数的Oracle PL/SQL例程。 BLOB包含一个.jpg文件。我想将BLOB参数分配给一个局部变量。然后我想插入(或更新)BLOB变量表中的BLOB列。如何从参数中将BLOB复制到Oracle PL/SQL中的局部变量?
我已经试过这样的事情:
declare
vATTACHMENT blob;
begin
dbms_lob.createtemporary(vATTACHMENT, false, dbms_lob.session);
dbms_lob.write(vATTACHMENT, dbms_lob.lobmaxsize, 1, :pATTACHMENT));
-- do some stuff
insert into attachments (attachment, file_name)
values (vATTACHMENT, vFILE_NAME);
end;
,但我得到了以下错误:
ORA-06502: PL/SQL: numeric or value error
ORA-06512: at "SYS.DBMS_LOB", line 811
ORA-06512: at line 21
我也尝试了直接分配如vATTACHMENT := :pATTACHMENT;
但并不希望任何工作。
当您尝试直接分配时,具体的问题是什么? – 2012-03-16 18:51:27
它更多的是执行PL/SQL的组件的一个问题。它认为任何前面带有冒号的参数都是参数,所以它会创建一个参数名称'='。 – 2012-03-16 19:25:05