【发布时间】:2012-04-02 07:21:36
【问题描述】:
我有一个以 BLOB 作为参数的 Oracle PL/SQL 例程。 BLOB 包含一个 .jpg 文件。我想将 BLOB 参数分配给局部变量。然后我想在 BLOB 变量的表中插入(或更新)一个 BLOB 列。
我尝试过这样的事情:
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; 这样的直接分配,但它也不想工作。
【问题讨论】:
-
您尝试直接分配时遇到的具体问题是什么?
-
更多的是执行 PL/SQL 的组件的问题。它认为前面有冒号的任何东西都是参数,所以它创建了一个参数名称'='。
标签: oracle plsql oracle10g blob