问答详情
源自:2-2 [Oracle] 带参数的存储过程

带参存储过程问题:PLS-00905: 对象 SCOTT.RAISESALARY 无效

这是存储过程代码 :create or replace procedure raisesalary(eno in number)

as

 oldsalary emp.empno%type;

 begin

           select sal into oldsalary where empno=eno;

           update emp set sal = sal+100 where empno=eno;

           dbms_output.put_line('修改前:'||oldsalary||'  修改后:'||(sal+100));

 end;

调用的时候出现PLS-00905: 对象 SCOTT.RAISESALARY 无效;为什么啊

提问者:举一帆 2016-10-19 15:07

个回答

  • qq_诗人的梦_0
    2017-07-27 18:18:32

       create or replace procedure raisalary(eno in number)--in  输入参数

        as

          psal  a_testoracel.sal%type; --引用薪水的类型作为变量的类型

        begin  --plsql程序开始

          --得到员工涨前的薪水

          select sal into psal from a_testoracel where empno = eno; 

          update a_testoracel set sal=sal+100 where empno = eno;

          dbms_output.put_line('涨前:'||psal||'  涨后:'||(psal + 100));

        end;

        /


  • 慕粉4221810
    2016-10-19 15:42:07

    第三行定义变量涨前的薪水错了。应该为 oldsalary emp.sal%type;

    第七行最后输出修改后应该是oldsalary +100