Je peux explicitement qualifier la variable dans le corps de la procédure stockée ou de la fonction:
create or replace
PROCEDURE ptest AS
int_val INT;
BEGIN
ptest.int_val:=0;
END;
/
Comment faire la même gâchette à l'intérieur?
create table temp1(id int not null);
create or replace trigger trg_before_insert_temp1 before insert on temp1 for each row
declare int_val int;
begin
trg_before_insert_temp1.int_val := 0; -- PLS-00201, identifier must be declared
end trg_before_insert_temp1;
/
Question interessante. Pour autant que je sache, cela n'est pas possible, même si cela semble être. À moins que quelqu'un d'autre puisse montrer comment cela peut être fait, une solution de contournement serait d'imbriquer le code dans un bloc:
create or replace trigger trg_before_insert_temp1 before insert on temp1 for each row
declare
begin
<<bob>> declare
int_val int;
BEGIN
bob.int_val := 0;
END;
end trg_before_insert_temp1;