PACKAGE 可变数组+行组触发器+表级触发器 解决数据操作问题

这篇博客展示了如何利用PL/SQL中的PACKAGE定义可变数组,并结合行级触发器和表级触发器来处理数据操作。通过示例,解释了如何在INSERT操作后获取并存储新插入的行,以及如何在表级触发器中计算每个部门的最大薪资。
摘要由CSDN通过智能技术生成

SQL> DESC EMP_TEST;
Name     Type         Nullable
Default Comments
-------- ------------ -------- ------- --------
EMPNO    NUMBER(4)    Y                        
ENAME   
VARCHAR2(10) Y                        
JOB     
VARCHAR2(9)  Y                        
MGR     
NUMBER(4)    Y                        
HIREDATE DATE         Y                        
SAL     
NUMBER(7,2)  Y                        
COMM    
NUMBER(7,2)  Y                        
DEPTNO  
NUMBER(2)    Y                        

SQL
> SELECT * FROM EMP_TEST;

EMPNO ENAME      JOB         MGR HIREDATE          SAL      COMM DEPTNO
----- ---------- --------- ----- ----------- --------- --------- ------
7369 SMITH      CLERK      7902 1980-12-17     800.00               20

Executed
in 0.016 seconds

-- package 代码:
CREATE OR REPLACE PACKAGE SCOTT.PKG_TRIGGER_TEST  IS
  TYPE T_EMP
IS TABLE OF SCOTT.EMP_TEST%ROWTYPE INDEX BY BINARY_INTEGER;
  V_EMPS T_EMP;
  V_NUM BINARY_INTEGER :
= 0;
END ;

-- 行级触发器得发NEW值:
CREATE OR REPLACE TRIGGER SCOTT.GET_EMP_ROW
  AFTER
INSERT ON SCOTT.EMP_TEST 
 
FOR EACH ROW
BEGIN
  DBMS_OUTPUT.PUT_LINE(
'-- TRIGGER SCOTT.GET_EMP_ROW START --');
  SCOTT.PKG_TRIGGER_TEST.V_NUM :
= SCOTT.PKG_TRIGGER_TEST.V_NUM + 1;
  SCOTT.PKG_TRIGGER_TEST.V_EMPS(SCOTT.PK

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值