我有一个语句级别的触发器,只要在一个表(称为客户)上执行INSERT UPDATE或DELETE操作时触发。我想显示一条消息(到DBMS_OUTPUT),其中包含插入/更新/删除的行数。如何在语句触发器中获取语句影响的行数
我只想为每个触发语句写一条消息,例如 '将4行插入customers表'中。
我如何可以访问从内部触发声明受触发语句的行数,即在XXX下面的代码:
CREATE OR REPLACE TRIGGER customer_changes_trigger_2
AFTER INSERT OR UPDATE OR DELETE ON customers
DECLARE
v_operation VARCHAR(10);
v_number_rows NUMBER;
BEGIN
v_number := XXX;
IF INSERTING THEN
v_operation := 'inserted';
END IF;
IF UPDATING THEN
v_operation := 'updated';
END IF;
IF DELETING THEN
v_operation := 'deleted';
END IF;
DBMS_OUTPUT.PUT_LINE
(v_number_rows|| ' rows were ' || v_operation || ' from customers.');
END;
无法找到文档中任何东西,任何帮助不胜感激!
为什么最初你想要'dbms_output'吗?你会去那里检查每一次?此时用于调试的 – Ben 2012-01-07 14:37:02
,稍后插入到表中。 – dav83 2012-01-07 14:39:20
为什么不只是将触发器更改为'对于每一行'并插入到您的跟踪表中,然后有一个单独的查询来总结它们? – Ben 2012-01-07 15:18:23