ORACLE BDD Probleme de

Résolu/Fermé
prosciuto145 Messages postés 92 Date d'inscription dimanche 6 mai 2007 Statut Membre Dernière intervention 7 septembre 2009 - 30 avril 2008 à 10:26
prosciuto145 Messages postés 92 Date d'inscription dimanche 6 mai 2007 Statut Membre Dernière intervention 7 septembre 2009 - 30 avril 2008 à 11:43
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

UaLShark Messages postés 191 Date d'inscription vendredi 19 mai 2006 Statut Membre Dernière intervention 21 juillet 2010 35
30 avril 2008 à 11:19
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;
0
prosciuto145 Messages postés 92 Date d'inscription dimanche 6 mai 2007 Statut Membre Dernière intervention 7 septembre 2009 24
30 avril 2008 à 11:43
merci à toi, ca fonctionne tres bien !
0