创建一个存储过程,根据提供的雇员姓名(作为过程的参数),将该雇员的工资改为2000;
--1:创建一个存储过程,根据提供的雇员姓名(作为过程的参数),将该雇员的工资改为2000; create procedure update_sal(v_name emp.ename%type) is eno emp.empno%type; begin select empno into eno from emp where ename=v_name; update emp set sal=2000 where empno=eno; end; exec update_sal('SMITH'); select * from emp;
--2:创建一个存储过程,根据提供的雇员姓名,查询该雇员的上级领导人的姓名,并返回。
--2:创建一个存储过程,根据提供的雇员姓名,查询该雇员的上级领导人的姓名,并返回。 create or replace function getnames(v_name emp.ename%type) return varchar is vvname emp.ename%type; mgrs emp.mgr%type; begin select mgr into mgrs from emp where ename=v_name; select ename into vvname from emp where empno=mgrs; return vvname; end; select getnames('SMITH') from dual;
--3:创建一个存储过程,输入部门号,返回该部门所有雇员的姓名,工资和佣金。
--3:创建一个存储过程,输入部门号,返回该部门所有雇员的姓名,工资和佣金。 create or replace procedure selcet_curemp( id in emp.deptno%type) is cursor c1 is select * from emp where deptno = id; begin for rec in c1 loop dbms_output.put_line(rec.empno||' '||rec.empno||' '||rec.job); end loop; end; execute selcet_curemp(10);
--4:编写一个过程,输入部门号,返回该部门所有雇员信息。
--4:编写一个过程,输入部门号,返回该部门所有雇员信息。 create or replace procedure get(id in emp.deptno%type) is cursor c1 is select * from emp where deptno = id; begin for rec in c1 loop dbms_output.put_line(rec.empno||' '||rec.ename||' '||rec.job||' '||rec.sal||' '||rec.comm||' '||rec.mgr); end loop; end; exec get(30);