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); V1 号(3,2); v2号码(3,2); b1号码(3,2); b2数(3,2); B3 号(3,2); b4号码(3,2); b5号码(3,2); b6号码(3,2); B7 号(3,2);
开始sd:='中等教育&#39 ;;执行 academics_data(SD,V1,V2,B1,B2,B3,B4,B5,B6,B7); dbms_output.put_line('值为:v1 =' || v1 ||' v2 =' || v2 ||' b1 =' || b1 ||' B2 =' || || B2' B3 =' || || B3' B4 =' || || B4' B5 =' || || B5' B6 =' || B6);结束;错误 报告:ORA-06550:第15行,第9栏:PLS-00103:遇到了 符号" ACADEMICS_DATA"期待以下之一:
:=。 (@%;立即符号":="代替 " ACADEMICS_DATA"接着说。 06550. 00000 - "行%s,列%s:\ n%s" *原因:通常是PL / SQL编译错误。 *操作:
答案 0 :(得分:3)
调用的语法错误。在PL / SQL块中,您不使用execute
命令 - 仅在SQL * Plus命令行中使用。将您的块重写为:
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';
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;
祝你好运。