⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 insteadof.sql

📁 Oracle 9i PL/SQL程序设计的随书源码
💻 SQL
字号:
REM insteadOf.sql
REM Chapter 11, Oracle9i PL/SQL Programming by Scott Urman
REM This script demonstrates the use of an Oracle8 instead-of
REM trigger.

CREATE OR REPLACE VIEW classes_rooms AS
  SELECT department, course, building, room_number
  FROM rooms, classes
  WHERE rooms.room_id = classes.room_id;

SELECT * FROM classes_rooms;

PROMPT Illegal insert...
INSERT INTO classes_rooms (department, course, building, room_number)
  VALUES ('MUS', 100, 'Music Building', 200);

CREATE TRIGGER ClassesRoomsInsert
  INSTEAD OF INSERT ON classes_rooms
DECLARE
  v_roomID rooms.room_id%TYPE;
BEGIN
  -- First determine the room ID
  SELECT room_id
    INTO v_roomID
    FROM rooms
    WHERE building = :new.building
    AND room_number = :new.room_number;

  -- And now update the class
  UPDATE CLASSES
    SET room_id = v_roomID
    WHERE department = :new.department
    AND course = :new.course;
END ClassesRoomsInsert;
/

PROMPT Successful insert...
INSERT INTO classes_rooms (department, course, building, room_number)
  VALUES ('MUS', 100, 'Music Building', 200);

SELECT * FROM classes_rooms;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -