[ORACLE] probleme "if (select) is null then" SYNTAX

probleme "if (select) is null then" SYNTAX [ORACLE] - SQL/NoSQL - Programmation

Marsh Posté le 30-04-2008 à 10:42:56    

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.

Code :
  1. BEGIN
  2. IF
  3. (
  4.  SELECT ROUND(T1,2) as "T1"
  5.  FROM TABLE
  6.     (
  7.     TSEN.get_val(
  8.       'tsen1',
  9.       TO_DATE('10-04-2008' ||' '|| '21'|| ':' || '03', 'DD-MM-YYYY HH24:MI'),
  10.       TO_DATE('22-04-2008' ||' '|| '04'|| ':' || '07', 'DD-MM-YYYY HH24:MI')
  11.        ) 
  12.     )
  13. ) IS NULL THEN
  14.   RETURN FALSE;
  15. ELSE
  16.   RETURN TRUE;
  17. END IF;
  18. END;


 la simple requête select fonctionne et me retourne des lignes; mais lorsque j'ajoute le "if ... is nul" 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

Reply

Marsh Posté le 30-04-2008 à 10:42:56   

Reply

Marsh Posté le 30-04-2008 à 10:46:57    

fais plutot un count(*) et le test de ton if > que 0.
 
et encore, personellement je mettrais le select a part, je ferai un into dans une variable et je testerai par la suite sur cette variable, une requete sql dans une condition ca rend vite le code illisible

Reply

Marsh Posté le 30-04-2008 à 10:55:19    

IL y aurait moyen que tu me donnes juste la syntaxe ?
 
begin
if count then
end if
end ?
 
parce que la je vois pas du tout comment proceder

Reply

Marsh Posté le 30-04-2008 à 11:04:49    

Code :
  1. une_variable number;
  2.  
  3. SELECT count(*) INTO une_variable
  4. FROM TABLE
  5.    (
  6.    TSEN.get_val(
  7.      'tsen1',
  8.      TO_DATE('10-04-2008' ||' '|| '21'|| ':' || '03', 'DD-MM-YYYY HH24:MI'),
  9.      TO_DATE('22-04-2008' ||' '|| '04'|| ':' || '07', 'DD-MM-YYYY HH24:MI')
  10.       )
  11.    );
  12.  
  13. IF
  14. ( une_variable = 0) THEN
  15.  RETURN FALSE;
  16. ELSE
  17.  RETURN TRUE;
  18. END IF;


 

Reply

Marsh Posté le 30-04-2008 à 11:36:14    

Ok, ca fonctionne super bien je te remercie de ton aide !
 
@+

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed