Appeler une fonction au sein d'un déclencheur en pl/sql

J'ai cherché par le biais de l'Internet pour des ressources de me fournir un exemple de comment appeler une fonction que j'ai créée à partir d'un déclencheur en PL/SQL.

J'ai fait une fonction appelée get_balance qui ressemble à ceci:

create or replace function get_balance(p_custno in number)
return number
as
v_balance account.balance%type;
begin
select balance 
into v_balance
from account
where custno = p_custno;
return v_balance;
end;
/

Maintenant, je veux appeler cette fonction dans un déclencheur pour vérifier le solde avant un retrait. J'ai essayé de faire comme suit, mais je pense que c'est totalement faux:

create or replace trigger bifer_withdrawal
before insert on withdrawal
for each row
begin
if get_balance(p_custno) <= amount then
raise_application_error(-20001, 'Not enough money in account!');
end if;
end;
/

Quelqu'un pourrait-veuillez fournir un débutant avec un exemple de comment appeler une fonction dans un trigger?

  • vous faites corriger .... toute erreur que vous avez obtenu tout le compiler?
  • ambiante transaction?
  • Il compile mais j'obtiens un message d'avertissement.
  • Et la raison pourquoi vous ne nous dites pas ce que l'avertissement est?
  • Désolé Ollie, je suis nouveau sur SQL-developer et ne savez pas où chercher de l'avertissement. Je vous serais reconnaissant si vous pouviez me dire où chercher. À la sortie du script de vue il est dit que le déclencheur est compilé avec des avertissements.
  • Je pense que dans SQL Developer, vous pouvez utiliser Affichage -> le Journal dans le menu principal si je n'ai pas SQL Developer installé sur le PC que j'utilise aujourd'hui.

InformationsquelleAutor Posidon | 2012-02-21