如何在Oracle觸發(fā)器中使用條件語(yǔ)句

小樊
81
2024-09-24 08:55:01
欄目: 云計(jì)算

在Oracle觸發(fā)器中使用條件語(yǔ)句,你可以使用IF、CASEWHEN等關(guān)鍵字

  1. 使用IF語(yǔ)句:
CREATE OR REPLACE TRIGGER example_trigger
AFTER INSERT ON example_table
FOR EACH ROW
DECLARE
  v_new_value NUMBER;
BEGIN
  v_new_value := :NEW.column_name;

  IF v_new_value > 10 THEN
    -- 執(zhí)行某個(gè)操作
    DBMS_OUTPUT.PUT_LINE('新值大于10');
  ELSEIF v_new_value <= 10 AND v_new_value > 0 THEN
    -- 執(zhí)行另一個(gè)操作
    DBMS_OUTPUT.PUT_LINE('新值在0和10之間');
  ELSE
    -- 執(zhí)行其他操作
    DBMS_OUTPUT.PUT_LINE('新值小于等于0');
  END IF;
END;
/
  1. 使用CASE語(yǔ)句:
CREATE OR REPLACE TRIGGER example_trigger
AFTER INSERT ON example_table
FOR EACH ROW
DECLARE
  v_new_value NUMBER;
BEGIN
  v_new_value := :NEW.column_name;

  CASE
    WHEN v_new_value > 10 THEN
      -- 執(zhí)行某個(gè)操作
      DBMS_OUTPUT.PUT_LINE('新值大于10');
    WHEN v_new_value <= 10 AND v_new_value > 0 THEN
      -- 執(zhí)行另一個(gè)操作
      DBMS_OUTPUT.PUT_LINE('新值在0和10之間');
    ELSE
      -- 執(zhí)行其他操作
      DBMS_OUTPUT.PUT_LINE('新值小于等于0');
  END CASE;
END;
/
  1. 使用WHEN語(yǔ)句:
CREATE OR REPLACE TRIGGER example_trigger
AFTER INSERT ON example_table
FOR EACH ROW
DECLARE
  v_new_value NUMBER;
BEGIN
  v_new_value := :NEW.column_name;

  WHEN v_new_value > 10 THEN
    -- 執(zhí)行某個(gè)操作
    DBMS_OUTPUT.PUT_LINE('新值大于10');
  WHEN v_new_value <= 10 AND v_new_value > 0 THEN
    -- 執(zhí)行另一個(gè)操作
    DBMS_OUTPUT.PUT_LINE('新值在0和10之間');
  ELSE
    -- 執(zhí)行其他操作
    DBMS_OUTPUT.PUT_LINE('新值小于等于0');
  END WHEN;
END;
/

這些示例都是在插入新記錄后觸發(fā)的觸發(fā)器,并根據(jù)新插入記錄的某個(gè)列值執(zhí)行不同的操作。你可以根據(jù)自己的需求修改觸發(fā)器和條件語(yǔ)句。

0