无法使用输入和输出参数执行存储过程

时间:2016-11-07 14:15:41

标签: oracle plsql

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编译错误。   *操作:

1 个答案:

答案 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;

祝你好运。