Oracle第四章PL/SQL——存储过程,触发器

存储过程

存储过程定义

存储过程管理

存储过程查看
存储过程编译
存储过程删除

存储过程调用执行

练习

-- 创建存储过程 DepSalary
CREATE OR REPLACE PROCEDURE DepSalary IS
  -- 定义游标
  CURSOR salary_cursor IS
    SELECT Department, SUM(Salary) AS TotalSalary
    FROM Employee
    GROUP BY Department;

  -- 定义变量
  department_name Employee.Department%TYPE;
  total_salary    NUMBER;

BEGIN
  -- 打开游标
  OPEN salary_cursor;

  -- 循环遍历结果集
  LOOP
    -- 从游标中检索数据
    FETCH salary_cursor INTO department_name, total_salary;
    
    -- 退出循环条件
    EXIT WHEN salary_cursor%NOTFOUND;

    -- 在屏幕上输出结果
    DBMS_OUTPUT.PUT_LINE('Department: ' || department_name || ', Total Salary: ' || total_salary);
  END LOOP;

  -- 关闭游标
  CLOSE salary_cursor;

END DepSalary;
/

-- 执行存储过程
EXEC DepSalary;

触发器

触发器定义

触发器创建

基于DML操作的触发器
基于DDL的触发器
数据库系统操作触发器

触发器管理

触发器查看
触发器编译
触发器屏蔽
触发器删除

练习

CREATE OR REPLACE TRIGGER T_Employee_Delete
BEFORE DELETE ON Employee
FOR EACH ROW
DECLARE
  v_deleDate DATE;
BEGIN
  -- 获取当前系统日期作为删除日期
  v_deleDate := SYSDATE;

  -- 插入删除记录到 EmployeeBackup 表
  INSERT INTO EmployeeBackup (id, deleDate, empID, empName, operUser)
  VALUES (:OLD.id, v_deleDate, :OLD.empID, :OLD.empName, :OLD.operUser);
END;
/

PL/SQL事务

事务SQL语句
事务程序结构
事务隔离等级
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雙溪舴艋舟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值