实验3PLSQL编程 联系客服

发布时间 : 星期一 文章实验3PLSQL编程更新完毕开始阅读d5150c7c588102d276a20029bd64783e09127d92

.

6.

create or replace procedure emp_count as v_total number; begin

select count(*) into v_total from scott.emp; dbms_output.put_line('雇员总数:'||v_total); end; /

SQL> execute emp_count; 雇员总数:15

PL/SQL 过程已成功完成。

SQL> begin

2 emp_count; 3 end; 4 /

雇员总数:15

PL/SQL 过程已成功完成。

.

.

7.

1 CREATE OR REPLACE PROCEDURE EMP_LIST 2 AS

3 CURSOR emp_cursor IS

4 SELECT empno,ename FROM scott.emp; 5 BEGIN

6 FOR Emp_record IN emp_cursor LOOP

7 DBMS_OUTPUT.PUT_LINE(Emp_record.empno||Emp_record.ename); 8 END LOOP; 9 EMP_COUNT; 10* END; SQL> /

过程已创建。

.

.

8.

SQL> CREATE OR REPLACE PROCEDURE select_emp 2 (v_emp_no IN emp.empno%type) 3 IS

4 v_emp_name emp.ename%type; 5 v_dept_name dept.dname%type; 6 BEGIN

7 SELECT EMP.ENAME,DEPT.DNAME 8 INTO v_emp_name, v_dept_name 9 FROM EMP,DEPT

10 WHERE EMP.DEPTNO=DEPT.DEPTNO AND EMPNO = v_emp_no; 11 DBMS_OUTPUT.PUT_LINE(v_emp_name||' '||v_dept_name); 12 END select_emp; 13 /

过程已创建。

SQL> EXECUTE select_emp(7844); TURNER SALES

PL/SQL 过程已成功完成。

SQL> CREATE OR REPLACE TRIGGER update_dept_to_emp 2 AFTER UPDATE ON DEPT FOR EACH ROW 3 BEGIN

4 IF UPDATING THEN

5 UPDATE EMP SET DEPTNO = :new.DEPTNO 6 WHERE DEPTNO=:old.DEPTNO; 7 END IF;

8 END update_dept_to_emp; 9 /

.

.

触发器已创建

9.

CREATE OR REPLACE TRIGGER tr_reg_dep AFTER update OF deptno ON dept

FOR EACH ROW BEGIN

DBMS_OUTPUT.PUT_LINE('旧的deptno值是'||:old.deptno ||'、新的deptno值是'||:new.deptno); UPDATE emp SET deptno = :new.deptno WHERE deptno = :old.deptno; END;

.