【发布时间】:2020-04-18 03:58:38
【问题描述】:
我需要将新旧变量值传递给一个过程。有谁知道这样做的方法吗?
在我的触发器之下:
create or replace TRIGGER "TRG_BEF_TESTE_TABELA_1"
BEFORE INSERT OR UPDATE OR DELETE ON "TESTE_TABELA_1"
REFERENCING NEW AS NOVO OLD AS VELHO
FOR EACH ROW
declare
n_reg teste_tabela_1%rowtype;
v_reg teste_tabela_1%rowtype;
begin
n_reg := :new;
v_reg := :old;
proc_teste_tabela_1(:new);
end;
在我的程序下面:
create or replace PROCEDURE PROC_TESTE_TABELA_1(P_TABELA in teste_tabela_1%rowtype) IS
begin
end;
【问题讨论】:
-
除非
teste_tablea_1恰好是一个对象表(并且可以将过程修改为采用对象类型而不是%rowtype),否则您不能处理:new和@987654326 @pseudorecords 作为实际记录。换句话说,你不能做你想做的事。您可以从:new和:old到n_reg和v_reg逐列分配值,但是每次向表中添加新列时都需要更新。