ORACLE BDD Probleme de

[Résolu/Fermé]
Signaler
Messages postés
92
Date d'inscription
dimanche 6 mai 2007
Statut
Membre
Dernière intervention
7 septembre 2009
-
Messages postés
92
Date d'inscription
dimanche 6 mai 2007
Statut
Membre
Dernière intervention
7 septembre 2009
-
Bonjour tout le monde,

J'ai besoin de créer une requête ou procédure qui me renvoie "false" quand la sous requête (select) ne renvoie aucune ligne, et "true" si elle en renvoie.

Je vous fourni la requête que j'ai réussi à faire la plus proche de la vérité à mon goût.
BEGIN
	IF 	(
	SELECT ROUND(T1,2) as "T1" 
	FROM TABLE	(
			TSEN.get_val(
				'tsen1',
				TO_DATE('10-04-2008' ||' '|| '21'|| ':' || '03', 'DD-MM-YYYY HH24:MI'),
				TO_DATE('22-04-2008' ||' '|| '04'|| ':' || '07', 'DD-MM-YYYY HH24:MI')
					  )   
				)
		) IS NULL THEN

		RETURN FALSE;
	ELSE
		RETURN TRUE;
	END IF; 
END;

la simple requête select fonctionne et me retourne des lignes; mais lorsque j'ajoute le if ... is null pour pouvoir avoir une fonction booléenne, ca ne fonctionne plus.

Quelqu'un aurait il une idée sur la manière de procéder ?

Merci d'avance

Aurélien

2 réponses

Messages postés
191
Date d'inscription
vendredi 19 mai 2006
Statut
Membre
Dernière intervention
21 juillet 2010
36
c'est simple
tu travailles avec select count
declare
v_count number;
BEGIN

SELECT count((T1) into v_count
FROM TABLE (
TSEN.get_val(
'tsen1',
TO_DATE('10-04-2008' ||' '|| '21'|| ':' || '03', 'DD-MM-YYYY HH24:MI'),
TO_DATE('22-04-2008' ||' '|| '04'|| ':' || '07', 'DD-MM-YYYY HH24:MI')
)
);
if (v_count = 0) then

RETURN FALSE;
ELSE
RETURN TRUE;
END IF;
END;
Messages postés
92
Date d'inscription
dimanche 6 mai 2007
Statut
Membre
Dernière intervention
7 septembre 2009
24
merci à toi, ca fonctionne tres bien !