declare
sd varchar2(30);
v1 number(3,2);
v2 number(3,2);
b1 number(3,2);
b2 number(3,2);
b3 number(3,2);
b4 number(3,2);
b5 number(3,2);
b6 number(3,2);
b7 number(3,2);
begin
sd:='secondary education';
execute academics_data(sd,v1,v2,b1,b2,b3,b4,b5,b6,b7);
dbms_output.put_line('values are: v1='||v1||' v2='||v2||' b1='||b1||' b2='||b2||' b3='||b3||' b4='||b4||' b5='||b5||' b6='||b6);
end;
我想用存储过程执行上述PLSQL块。但是错误如下。无法使用输入和输出参数执行存储过程
从命令行1开始的错误:declare sd varchar2(30); (3,2); v1 (3,2); v2数字(3,2); b1号码(3,2); b2号码(3,2); b3 number(3,2); b4号码(3,2); b5号码(3,2); b6号码(3,2); b7 number(3,2);
begin sd:='secondary education';执行 academics_data(sd,v1,v2,b1,b2,b3,b4,b5,b6,b7); dbms_output.put_line('values is:v1 ='|| v1 ||'v2 ='|| v2 ||'b1 ='|| b1 ||' b2 ='|| b2 ||'b3 ='| | b3 ||'b4 ='|| b4 ||'b5 ='|| b5 ||'b6 ='|| b6);结束;错误 报告:ORA-06550:第15行,第9列:PLS-00103:在期待以下某项时遇到 符号“ACADEMICS_DATA”:
:=。 (@%; immediate)符号“:=”替换为 “ACADEMICS_DATA”继续。 06550. 00000 - “行%s,列%s:\ n%s” *原因:通常是PL/SQL编译。错误 *操作:
删除'execute' – Aleksej
是的,这是正确的。谢谢Aleksej! – Darla
注意你没有在'dbms_output.put_line'前面放置'execute'。这只是另一个过程(恰巧由Oracle提供),所以你可以用同样的方式调用它们。 –