这是我的存储过程:
CREATE OR REPLACE
PROCEDURE prodecureName
(
firstArgument IN NUMBER,
secondArgument OUT BLOB )
AS
BEGIN
SELECT secondArgument
INTO prodecureName.secondArgument
FROM tableName
WHERE firstArgument = prodecureName.firstArgument ;
END;
secondArgument列的数据类型有效(两者都是BLOB)。 在执行此过程期间,我收到此错误:
调用prodecureName
时参数的数量或类型错误
如何从存储过程中获取blob?
答案 0 :(得分:1)
调用此过程的一种方法:
declare
l_blob blob;
begin
procedurename(1,l_blob);
end;
错误消息表明您使用错误的参数类型或错误的参数数调用此方法。第一个参数必须是类型编号,类型为blob的第二个参数。
答案 1 :(得分:0)
尝试类似的东西(使用clob而不是blob,但方法相同):
drop table tst_clob_tab;
create table tst_clob_tab
(
id number,
my_clob clob
);
-- Oracle will implicitly convert to clob (9i greater)
insert into tst_clob_tab(id,my_clob) values (1,'This is some large value...');
commit;
-- Create procedure
create or replace procedure tst_clob(p_1 in number, p_2 out clob) as
begin
select my_clob
into p_2
from tst_clob_tab
where id = p_1;
end;
-- Call procedure
declare
l_clob clob;
begin
tst_clob(1,l_clob);
dbms_output.put_line('Clob: ' || l_clob);
end;