Précédent   Forum des professionnels en informatique > Bases de données > Oracle > PL/SQL
PL/SQL Forum d'entraide sur le PL/SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/12/2011, 12h31   #1
Invité régulier
 
Inscription : janvier 2006
Messages : 44
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 44
Points : 7
Points : 7
Par défaut Gestion d'une table de dates

Bonjour la team,

Connaissez-vous une façon propore pour mettre en place une solution du type:


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
CREATE OR REPLACE
PROCEDURE    MA_FONCTION 
AS	
 
 type table_type IS TABLE of date;
 ma_table table_type;
 ma_date date;
 W_TEST varchar2(64);
 W_IDX number;
 
BEGIN
 
ma_table(1) := TO_DATE('01/01/2000','dd/mm/yyyy'); 
ma_table(2) := TO_DATE('01/01/2001','dd/mm/yyyy'); 
ma_table(3) := TO_DATE('01/01/2002','dd/mm/yyyy'); 
 
ma_date := TO_DATE('01/01/2003','dd/mm/yyyy');
 
FOR W_IDX IN ma_table.first..ma_table.last loop
 
   IF ma_date  IN ( ma_table(W_IDX) )then
       W_TEST := 'OK'; 
    else
      W_TEST := 'KO'; 
    end IF;
 
end loop;
END;
Existet-il un moyen pour faire quelque chose du genre:

Code :
1
2
3
IF ma_date  IN ma_table
  ...
THEN
Merci pour votre aide,
Berni.
bernidupont est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 23/12/2011, 16h45   #2
Expert Confirmé Sénior
 
Avatar de mnitu
 
Homme Marius Nitu
Ingénieur développement logiciels
Inscription : octobre 2007
Messages : 3 313
Détails du profil
Informations personnelles :
Nom : Homme Marius Nitu
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 3 313
Points : 5 817
Points : 5 817
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
 
Connected TO Oracle DATABASE 11g Enterprise Edition Release 11.2.0.1.0 
Connected AS impdata
 
SQL> SET serveroutput ON
SQL> 
SQL> declare
  2    type date_nt IS TABLE of date ;
  3    l_date_tab   date_nt := date_nt(trunc(sysdate), trunc(sysdate - 1), trunc(sysdate- 2));
  4    --
  5    l_adate1      date := trunc(sysdate - 1);
  6    l_adate2      date := trunc(sysdate - 5);
  7  Begin
  8    IF l_adate1 Member Of l_date_tab Then
  9      dbms_output.put_line('OK');
 10    End IF;
 11    --
 12    IF l_adate2 NOT Member Of l_date_tab Then
 13      dbms_output.put_line('KO');
 14    End IF;
 15  End;
 16  /
 
OK
KO
 
PL/SQL procedure successfully completed
 
SQL>
mnitu est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h49.


 
 
 
 
Partenaires

Hébergement Web