Erreur : ISNULL is not Declared sur Orale 8i - SQL/NoSQL - Programmation
Marsh Posté le 13-04-2007 à 13:45:11
je reprends le bout de code ici parceque ça se voir pas très bien dans mon premier message
1.
CREATE OR REPLACE TRIGGER trig_langue
2.
AFTER INSERT ON COMMUN.ES_LANGUE
3.
FOR EACH ROW
4.
DECLARE
5.
6.
SPY INTEGER;
7.
8.
BEGIN
9.
10.
11.
if inserting then
12.
select ISNULL(DML,0) into SPY from DELTACOMMUN.ES_LANGUE where code = :new.code;
13.
if SPY = 3 then
14.
insert into DELTACOMMUN.ES_LANGUE values (:new.code,:new.libelle,:new.symbole,2);
15.
else
16.
insert into DELTACOMMUN.ES_LANGUE values (:new.code,:new.libelle,:new.symbole,1);
17.
end if;
18.
end if;
Marsh Posté le 13-04-2007 à 13:56:28
Autrement dit, comment peut on empêcher le SELECT de retourner rien ou null? je voudraus à la place de null avoir un nombre, 0 par exemple.
je pense que le isnull permet de faire cela sauf qu'il ne marche pas là.
Faites moi part d'un réponse please.
Thank you!!
Marsh Posté le 13-04-2007 à 14:05:44
Merci.
Mnt ca marche pour le nvl(DML,0) mais j'ai l'erreur suivante :
Aucune donnée trouvée
ORA-06512: à "SYS.TRIG_LANGUE", ligne 9
ORA-04088: erreur lors d'exécution du déclencheur 'SYS.TRIG_LANGUE'
qu'est ce qui se passe lorsqu'on fait un select sur une table vide, est ce que la requête SELECT retourne null ou retourne un message d'erreur.
Marsh Posté le 13-04-2007 à 14:12:37
est ce qu'on peut écrire:
SPY := nvl(select DML from ES_LANGUE,0)??
Marsh Posté le 13-04-2007 à 14:16:39
S'il n'y a pas de ligne, alors le SELECT ... INTO renvoie l'erreur que tu vois.
Il faut faire qqch comme :
begin
select DML
into SPY
from DELTACOMMUN.ES_LANGUE
where code = :new.code;
exception
when NO_DATA_FOUND then
SPY := 0;
end;
Marsh Posté le 13-04-2007 à 13:43:30
Bonjour Tous,
j'ai contruit le trigger suivant sur une base de données Oracle 8i ou j'ai deux schéma COMMUN et DELTACOMMUN
Seulement à l'éxecution du trigger , j'ai l'erreur qui dit que ISNULL doit être déclaré. je comprends rien..
est ce que ISNULL n'est pas supporté par oracle 8i?
j'ai esssayé ifnull, nullif et coalsce mais toujours la même erreur.
quelqu'un peut m'aider SVP.
Merci