procédure stockée [ORACLE] - SQL/NoSQL - Programmation
Marsh Posté le 09-10-2007 à 10:34:45
Hummm, a vue de nez, c parceque tu n'as pas de données pour le code individu passé en paramètres. Essaye de modifier ta requete comme ca :
Code :
|
pour ramener des 0 au lieu de nulls si tu ne trouve pas de datas.
++
Fred
Marsh Posté le 09-10-2007 à 10:40:19
Merci beaucoup , je connaissait pas cette syntaxe peut tu m'expliquer l'utilisation de NVL rapidement
en tout cas ça marche bien ! Merci beaucoup !!
Marsh Posté le 09-10-2007 à 10:51:58
NVL permet de remplacer une valeur NULL par une valeur passée en paramètre, ici 0
Marsh Posté le 09-10-2007 à 14:41:57
et je te conseille de faire la découverte du block EXCEPTION, ca te permettra de mieux comprendre les mécanismes de renvoi d'exception de ce genre
Marsh Posté le 12-10-2007 à 20:34:01
CREATE OR REPLACE PROCEDURE NbSelection (NumIndividu number) |
Marsh Posté le 09-10-2007 à 09:52:06
Bonjour,
J'ai besoin d'une procédure stockée afin d'alimenter une table (TOP100) qui contient
des infos sur les individus les plus consultés de la BDD.
J'ai un pb au moment de l'execution de ma procédure :
--- mon erreur ---
ERREUR à la ligne 1 :
ORA-01403: Aucune donnée trouvée
ORA-06512: à "E17809.NBSELECTION", ligne 10
ORA-06512: à ligne 1
--- ma table top100 ---
CREATE TABLE TOP100
(nbConsultation number,
NumInd number references ens2004.Individu(NumIndividu));
--- ma procédure ---
CREATE OR REPLACE PROCEDURE NbSelection (NumIndividu number)
IS
nI ens2004.Individu.NumIndividu%type;
nC TOP100.nbConsultation%type;
BEGIN
nI :=0;
SELECT nbConsultation, NumInd INTO nC, nI FROM TOP100 WHERE NumInd = NumIndividu;
IF nI = 0 THEN
INSERT INTO TOP100 VALUES(1,NumIndividu);
ELSE
UPDATE TOP100 SET nbConsultation = nC+1 WHERE NumInd = NumIndividu;
END IF;
END;
/
Merci d'avance
Message édité par sharck1987 le 09-10-2007 à 10:01:45