CREATE OR REPLACE FUNCTION public."homeORoffFun"(
value1 numeric,
value2 numeric)
RETURNS numeric AS
$BODY$
begin
if (value1 is not null ) then return value1;
else return value2;
end if;
end;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION public."homeORoffFun"(numeric, numeric)
OWNER TO postgres;
CREATE OR REPLACE FUNCTION public."Default_Home_Ph"()
RETURNS trigger AS
$BODY$
begin
if (new."Emp" is not null)then
update "Employees"
set new."Home_Ph"= homeORoffFun(new."Home_Ph", new."Office_Ph");
else
raise notice 'Emp is null';
end if;
return new;
end;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION public."Default_Home_Ph"()
OWNER TO postgres;
CREATE TRIGGER "Default_Home_Ph"
BEFORE INSERT
ON public."Employees"
FOR EACH ROW
EXECUTE PROCEDURE public."Default_Home_Ph"();
insert into "Employees" values('io', 1234, 1, 080123456, 080987654);
OUTPUT:
ERRORE: la funzione homeorofffun(numeric, numeric) non esiste
LINE 2: set new."Home_Ph"= homeORoffFun(new."Home_Ph", new."Offic...
^
HINT: Nessuna funzione trovata con nome e tipi di argomenti forniti. Potrebbe essere necessario convertire i tipi esplicitamente.
QUERY: update "Employees"
set new."Home_Ph"= homeORoffFun(new."Home_Ph", new."Office_Ph")
CONTEXT: funzione PL/pgSQL "Default_Home_Ph"() riga 4 a istruzione SQL
********** Error **********
ERRORE: la funzione homeorofffun(numeric, numeric) non esiste
SQL state: 42883
Hint: Nessuna funzione trovata con nome e tipi di argomenti forniti. Potrebbe essere necessario convertire i tipi esplicitamente.
Context: funzione PL/pgSQL "Default_Home_Ph"() riga 4 a istruzione SQL