--1、
CREATE TABLE TEST_A(A NUMBER(10),B NUMBER(10),C NUMBER(10));
--2、
INSERT INTO TEST_A (A,B,C) VALUES(NULL,5,6);
--3、
CREATE OR REPLACE TRIGGER TRG_TEST_A
BEFORE INSERT ON TEST_A
FOR EACH ROW
DECLARE
LN_B NUMBER(10);
LN_C NUMBER(10);
CURSOR INSERTED_CURSOR IS
SELECT :NEW.B, :NEW.C FROM DUAL;
BEGIN
LN_B := 0;
LN_C := 0;
IF INSERTING THEN
BEGIN
OPEN INSERTED_CURSOR;
FETCH INSERTED_CURSOR
INTO LN_B, LN_C;
WHILE INSERTED_CURSOR%FOUND LOOP
BEGIN
--???????????
--这里写 LN_B * LN_C 的结果给TEST_A中的字段 A (当前新插入行的)
--???????????
FETCH INSERTED_CURSOR
INTO LN_B, LN_C;;
END;
END LOOP;
CLOSE INSERTED_CURSOR;
END;
END IF;
END TRG_TEST_A;