Oracle 大佬们求解, ORA-06550, PLS-00103 5C

create or replace procedure StockPoolAdjust( gpCode in varchar2,
msg out varchar2,
flag out varchar2)
as
inum integer;

begin
--是否在公司库
select count(1) into inum from uf_stock_pool where stockcode = gpCode;

if inum > 0 then
msg := '不能申请';
flag := '-1';
return;
end if;

Exception
when others then
  flag := '-1';

end;

测试:
begin
-- Call the procedure
stockpooladjust(gpcode => :'119125',
msg => :msg,
flag => :flag);

end;

错误信息:
图片说明

4个回答

解决了吗?你赋值时的msg和flag是从哪里给的 varchar2 也要`表示字符 类型问题

解决了吗?你赋值时的msg和flag是从哪里给的 varchar2 也要`表示字符 类型问题

参数有问题。请指定是IN还是OUT

qq_16962131
qq_16962131 回复jackleeonlyone: 是测试代码有问题 希望采纳 如果不行可以追问 缺币学习呢 哈哈 declare msg varchar2 flag varchar2 begin stockpooladjust('119125',msg,flag) end; 例子: declare v_planno VARCHAR2(4000); begin proc_auto_gen_plan(2,1,'2000',123,1,999999,'1','','91701',v_planno); end ; 这是我以前遇到类似问题上网查询后解决的可以参考
接近 2 年之前 回复
jackleeonlyone
jackleeonlyone 不好意思,谢谢关心,刚学存储过程,还不太了解,解决了,plsql测试存储过程,只需要填参就可以,这种不知道是不是正确的
大约 2 年之前 回复

参数有问题。请指定是IN还是OUT

异常处理里是不是也要对msg进行返回

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问