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

来源:2-2 [Oracle] 带参数的存储过程

举一帆

2016-10-19 15:07

这是存储过程代码 :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 无效;为什么啊

写回答 关注

2回答

  • 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;

        /


    180416 回复qq_诗人的...

    过程名

    2019-01-28 15:58:23

    共 2 条回复 >

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

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

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

    举一帆

    thanks 解决 了

    2016-10-19 16:02:12

    共 1 条回复 >

Oracle存储过程和自定义函数

Java开发重要课程,Oracle数据库开发工程师的加薪利器

56308 学习 · 118 问题

查看课程

相似问题