17,377
社区成员
发帖
与我相关
我的任务
分享
--创建包规范
CREATE OR REPLACE PACKAGE SHENG
IS
FUNCTION f( v_empno emp.empno%type) RETURN emp.ename%type;
PROCEDURE p(v_deptno emp2.deptno%type);
END SHENG;
--创建包体
CREATE OR REPLACE PACKAGE BODY SHENG AS
CREATE OR REPLACE FUNCTION f(v_empno emp.empno%type)
RETURN emp.ename%type;
AS
v_ename emp.ename%type;
BEGIN
SELECT b.ename INTO v_ename FROM emp a
LEFT JOIN emp b ON a.mgr = b.empno
WHERE a.empno = v_empno;
RETURN v_ename;
END f;
CREATE OR REPLACE PROCEDURE p
(v_deptno emp2.deptno%type)
as
CURSOR c IS
SELECT * FROM emp2 WHERE deptno = v_deptno FOR UPDATE;
BEGIN
FOR v_emp IN c LOOP
UPDATE emp2 SET sal = sal + 100 WHERE CURRENT OF c;
END LOOP;
COMMIT;
END p;
END SHENG;