--创建一个带参数的存储过程
- --创建一个带参数的存储过程
- --为指定的员工,涨100块钱的工资;并且打印涨前和涨后的薪水
- /*
- begin
- raisesalary(6755);
- raisesalary(4456);
- commit();//这里提交,所以说我们一般不会在存储过程或者存储函数中写提交,
- end;
- /
- */
- --host cls
- --先创建表emp和插入数据,显示表的结构用desc 表名
- --create table emp
- create or replace procedure raisesalary(eno in number)--需要指明是输入参数(in)还是输出参数
- as
- --定义一个变量保存涨前的薪水
- psal emp.sal%type; --变量psal的类型和emp表的sal字段的类型一样
- --psal number(10);
- begin
- --得到员工涨前的薪水
- select sal into psal from emp where empno=eno;
- --给该员工涨100
- update emp set sal = (sal+100) where empno=eno;
- --需不需要提交commit或者回滚rollback?
- --注意:一般不在存储过程或者存储函数中,commit和rollback
- --因为不能保证外面的调用者是同一个事物中,那么谁调用我就谁来提交或者回滚
- --打印
- dbms_output.put_line('涨前:'||psal||' 涨后:'||(sal));--sal
- end;
- --在dos窗口下sqlplus / as sysdba 这是不用密码的采用主机认证的方式连接oracle数据库
- --授予scott用户权限方式:grant DEBUG CONNECT SESSION,DEBUG ANY PROCEDURE to scott;