IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PL/SQL Oracle Discussion :

Appel de procédure stockée dans un select


Sujet :

PL/SQL Oracle

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2012
    Messages : 98
    Points : 45
    Points
    45
    Par défaut Appel de procédure stockée dans un select
    Bonsoir, j'ai crée une procédure stockée qui me permet de récupérer les différentes dates maximum pour chaque mois compris dans une période donnée.
    la procédure fonctionne très bien et j'arrive à voir le résultat sous sql développer avec print . Cependant j'arrive pas à l’utiliser dans un select l'objectif étant cela
    voici le code pl sql:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    30
    31
    CREATE OR REPLACE PROCEDURE dateMaxMult(nomEtabl IN VARCHAR2,date1 IN date,date2 IN date, dateMax OUT varchar2) IS 
    	Nomb Number;
    	Annee Number;
    	Mois Number;
    	dateM date;
    Begin
    	Nomb := Months_Between(Date2, Date1);
    	Annee := Trunc( Nomb/12);
    	Mois := Trunc(Nomb-Annee*12);
    		IF (Mois>0) THEN
    			FOR compteur IN  0..Mois 
    			LOOP
    				IF (compteur=0) THEN
    					SELECT MAX(date_generation) INTO dateM FROM ventes
    					WHERE CODE_ETABL=nomEtabl AND date_generation BETWEEN date1 AND LAST_DAY(date1);	
    					dateMax:=''''||dateM||'''';
    				ELSIF(compteur=Mois) THEN
    					SELECT MAX(date_generation) INTO dateM FROM ventes
    					WHERE CODE_ETABL=nomEtabl AND date_generation BETWEEN '01'||'/'||to_char(date2,'MM/YYYY') AND date2;
    					dateMax:=dateMax||','''||dateM||'''';
    				ELSE
    					SELECT MAX(date_generation) INTO dateM FROM ventes
    					WHERE CODE_ETABL=nomEtabl AND date_generation BETWEEN ADD_MONTHS( '01'||'/'||to_char(date1,'MM/YYYY'), compteur ) AND ADD_MONTHS( LAST_DAY(date1), compteur );
    					dateMax:=dateMax||','''||dateM||'''';
    				END IF;	
    			END LOOP;
    		ELSE
    			SELECT MAX(date_generation) INTO dateMax FROM ventes
    			WHERE CODE_ETABL=nomEtabl AND date_generation BETWEEN date1 AND date2;
    		END IF;
    End;
    et voici le code pl sql permettant de l'appeler dans un select
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    DECLARE
    periode VARCHAR2(100);
    code VARCHAR2(10) :='132';
    date1 date :='01/08/2014';
    date2 date :='31/12/2014';
    begin
    select CODE_PRODUIT "CODE PRODUIT",DESIGNATION,to_char(round(sum(QTE_VENDUE)),'999G999G999G999',  'nls_numeric_characters='', ''') "Qte Vendue",
    		 to_char(round(sum(VALEUR_VENTE)),'999G999G999G999',  'nls_numeric_characters='', ''') "C.A.H.T",
    		 to_char(round(sum(VALEUR)),'999G999G999G999',  'nls_numeric_characters='', ''') "VALEUR REV" ,
    		 to_char(round(sum(MARGE_HT)),'999G999G999G999',  'nls_numeric_characters='', ''') as MARGE,
    		 to_char(round((sum(VALEUR_VENTE)-sum(VALEUR))*100/nullif(sum(VALEUR_VENTE),0),2),'999G999G999G999D99',  'nls_numeric_characters='', ''') "TAUX",
    		 to_char(round(sum(QTE_STOCK_FINAL)) ,'999G999G999G999',  'nls_numeric_characters='', ''') "Qte Stock Final" 
    	    from ventes where CODE_ETABL =(select CODE_ETABL from ETABLISSEMENT where DESCRIPTION='VGE') and DATE_GENERATION in (select * from dateMaxMult(code,date1,date2,periode)) group by CODE_PRODUIT,DESIGNATION order by CODE_PRODUIT asc;
    end;
    mais j'ai l'erreur:
    Rapport d'erreur :
    ORA-06550: Ligne 13, colonne 162 :
    PL/SQL: ORA-00907: parenthèse de droite absente
    ORA-06550: Ligne 7, colonne 1 :
    PL/SQL: SQL Statement ignored
    06550. 00000 - "line %s, column %s:\n%s"
    *Cause: Usually a PL/SQL compilation error.

    j'ai alors essayé d'appeler la procedure dans un simple select:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    select CODE_PRODUIT "CODE PRODUIT",DESIGNATION,to_char(round(sum(QTE_VENDUE)),'999G999G999G999',  'nls_numeric_characters='', ''') "Qte Vendue",
    		 to_char(round(sum(VALEUR_VENTE)),'999G999G999G999',  'nls_numeric_characters='', ''') "C.A.H.T",
    		 to_char(round(sum(VALEUR)),'999G999G999G999',  'nls_numeric_characters='', ''') "VALEUR REV" ,
    		 to_char(round(sum(MARGE_HT)),'999G999G999G999',  'nls_numeric_characters='', ''') as MARGE,
    		 to_char(round((sum(VALEUR_VENTE)-sum(VALEUR))*100/nullif(sum(VALEUR_VENTE),0),2),'999G999G999G999D99',  'nls_numeric_characters='', ''') "TAUX",
    		 to_char(round(sum(QTE_STOCK_FINAL)) ,'999G999G999G999',  'nls_numeric_characters='', ''') "Qte Stock Final" 
    	    from ventes where CODE_ETABL =(select CODE_ETABL from ETABLISSEMENT where DESCRIPTION='VGE') and DATE_GENERATION in (select * from dateMaxMult('132','01/08/2014','31/12/2014',periode)) group by CODE_PRODUIT,DESIGNATION order by CODE_PRODUIT asc;
    mais j'ai toujours la même erreur
    j'ai aussi essayé d'enlever les cotes autour des dates avec des retour à la ligne comme dans un select dans le code pls\sql mais c'est toujours le même résultat:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    30
    31
    CREATE OR REPLACE PROCEDURE dateMaxMult(nomEtabl IN VARCHAR2,date1 IN date,date2 IN date, dateMax OUT varchar2) IS 
    	Nomb Number;
    	Annee Number;
    	Mois Number;
    	dateM date;
    Begin
    	Nomb := Months_Between(Date2, Date1);
    	Annee := Trunc( Nomb/12);
    	Mois := Trunc(Nomb-Annee*12);
    		IF (Mois>0) THEN
    			FOR compteur IN  0..Mois 
    			LOOP
    				IF (compteur=0) THEN
    					SELECT MAX(date_generation) INTO dateM FROM ventes
    					WHERE CODE_ETABL=nomEtabl AND date_generation BETWEEN date1 AND LAST_DAY(date1);	
    					dateMax:=dateM;
    				ELSIF(compteur=Mois) THEN
    					SELECT MAX(date_generation) INTO dateM FROM ventes
    					WHERE CODE_ETABL=nomEtabl AND date_generation BETWEEN '01'||'/'||to_char(date2,'MM/YYYY') AND date2;
    					dateMadx:=dateMax|| chr(10) ||dateM;
    				ELSE
    					SELECT MAX(date_generation) INTO dateM FROM ventes
    					WHERE CODE_ETABL=nomEtabl AND date_generation BETWEEN ADD_MONTHS( '01'||'/'||to_char(date1,'MM/YYYY'), compteur ) AND ADD_MONTHS( LAST_DAY(date1), compteur );
    					dadateMax:=dateMax|| chr(10) ||dateM;
    				END IF;	
    			END LOOP;
    		ELSE
    			SELECT MAX(date_generation) INTO dateMax FROM ventes
    			WHERE CODE_ETABL=nomEtabl AND date_generation BETWEEN date1 AND date2;
    		END IF;
    End;
    J'ai besoin de votre aide pour pourvoir appeler cette procédure dans mon select

  2. #2
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 460
    Points : 8 074
    Points
    8 074
    Par défaut
    Une procédure ne peut pas être appelée dans un SELECT, c'est une fonction qu'il faut créer à la place.
    Consultant / formateur Oracle indépendant
    Certifié OCP 12c, 11g, 10g ; sécurité 11g

    Ma dernière formation Oracle 19c publiée sur Linkedin : https://fr.linkedin.com/learning/oracle-19c-l-administration

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2012
    Messages : 98
    Points : 45
    Points
    45
    Par défaut
    Merci j'avais pensé à cette solution cependant les fonctions ne retournant qu'une seule valeur comment s'y prendre alors avec les fonctions si on veut retourner plusieurs lignes

  4. #4
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 947
    Points : 5 846
    Points
    5 846
    Par défaut
    dateMax OUT varchar2 ne renvoie qu'une valeur également.

    Vous devriez regarder du côté des collections ce qui vous permettra de renvoyer une collection de date au lieu d'une chaîne de caractère, avec les conversions implicites que ça entraine impliquant un code qui ne fonctionne que dans vos conditions de paramétrage de la variable NLS_DATE_FORMAT...

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    30
    31
    SQL> create type t_date as table of date
      2  /
     
    Type created.
     
    SQL> create or replace function f_list_date return t_date as
      2    l_date t_date;
      3  begin
      4    l_date := t_date(trunc(sysdate));
      5    --
      6    l_date.extend;
      7    l_date(2) := trunc(sysdate)+1;
      8    --
      9    l_date.extend;
     10    l_date(3) := trunc(sysdate)+2;
     11    --
     12    return l_date;
     13  end;
     14  /
     
    Function created.
     
    SQL> select * from table(f_list_date);
     
    COLUMN_VAL
    ----------
    24/03/2015
    25/03/2015
    26/03/2015
     
    SQL>

  5. #5
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut
    Citation Envoyé par sabdoul Voir le message
    Merci j'avais pensé à cette solution cependant les fonctions ne retournant qu'une seule valeur comment s'y prendre alors avec les fonctions si on veut retourner plusieurs lignes
    Bonsoir,
    Une fonction table ... ?
    (Regarder du côté "Pipelined Table Functions")
    Aux persévérants aucune route n'est interdite.
    Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
    Current Status
    Avec 40% de pollinisateurs invertébrés menacés d'extinction selon les Nations Unies, l'homme risque fort de passer de la monoculture à la mono diète...
    Faîtes quelque chose de bien avec vos petits sous: Enfants du Mekong

  6. #6
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2012
    Messages : 98
    Points : 45
    Points
    45
    Par défaut
    Salut merci et excusez moi du retard vos différentes réponses la solution avec les fonctions fonctionne effectivement mais le résultat étant une chaîne de caractère je suis obligé de le retraiter. Donc je vais regarder du côté des collections ou table préconisé. Merci j'essaie et je vous tient au courant.

  7. #7
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2012
    Messages : 98
    Points : 45
    Points
    45
    Par défaut
    Citation Envoyé par skuatamad Voir le message
    dateMax OUT varchar2 ne renvoie qu'une valeur également.

    Vous devriez regarder du côté des collections ce qui vous permettra de renvoyer une collection de date au lieu d'une chaîne de caractère, avec les conversions implicites que ça entraine impliquant un code qui ne fonctionne que dans vos conditions de paramétrage de la variable NLS_DATE_FORMAT...

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    30
    31
    SQL> create type t_date as table of date
      2  /
     
    Type created.
     
    SQL> create or replace function f_list_date return t_date as
      2    l_date t_date;
      3  begin
      4    l_date := t_date(trunc(sysdate));
      5    --
      6    l_date.extend;
      7    l_date(2) := trunc(sysdate)+1;
      8    --
      9    l_date.extend;
     10    l_date(3) := trunc(sysdate)+2;
     11    --
     12    return l_date;
     13  end;
     14  /
     
    Function created.
     
    SQL> select * from table(f_list_date);
     
    COLUMN_VAL
    ----------
    24/03/2015
    25/03/2015
    26/03/2015
     
    SQL>
    Salut j'essaie votre méthode avec les nested table mais sans succès j'ai cette erreur:Warning: exécution terminée avec avertissement
    function f_list_date(nomEtabl Compilé.
    alors qu'il ne m'affiche rien dans le dictionnaire de données avec show errors ou SELECT line, position, text "texte erreur"
    FROM USER_ERRORS
    WHERE name = 'f_list_date';
    Voici le code de ma fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    30
    31
    32
    create or replace function f_list_date(nomEtabl IN VARCHAR2,date1 IN date,date2 IN date) return t_date as
    	dateMax t_date;
       	Nomb Number;
    	Annee Number;
    	Mois Number;
    	dateM date;
     begin
     	Nomb := Months_Between(Date2, Date1);
    	Annee := Trunc( Nomb/12);
    	Mois := Trunc(Nomb-Annee*12);
    		IF (Mois>0) THEN
    			FOR compteur IN  0..Mois 
    			LOOP
    				IF (compteur=0) THEN
    					SELECT MAX(date_generation) INTO dateM FROM ventes
    					WHERE CODE_ETABL=nomEtabl AND date_generation BETWEEN date1 AND LAST_DAY(date1);	
    				ELSIF(compteur=Mois) THEN
    					SELECT MAX(date_generation) INTO dateM FROM ventes
    					WHERE CODE_ETABL=nomEtabl AND date_generation BETWEEN '01'||'/'||to_char(date2,'MM/YYYY') AND date2;
    				ELSE
    					SELECT MAX(date_generation) INTO dateM FROM ventes
    					WHERE CODE_ETABL=nomEtabl AND date_generation BETWEEN ADD_MONTHS( '01'||'/'||to_char(date1,'MM/YYYY'), compteur ) AND ADD_MONTHS( LAST_DAY(date1), compteur );
    				END IF;	
    				dateMax:=dateM;
    			END LOOP;
    		ELSE
    			SELECT MAX(date_generation) INTO dateM FROM ventes
    			WHERE CODE_ETABL=nomEtabl AND date_generation BETWEEN date1 AND date2;
    			dateMax:=dateM;
    		END IF;
    	RETURN dateMax;
     end;
    Donc quand je fais appel à la fonction çà marche pas j'ai des messages d'erreurs:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Erreur commençant à la ligne 1 de la commande :
    select * from table(f_list_date('432','01/08/2014','31/12/2014'))
    Erreur à la ligne de commande : 1, colonne : 20
    Rapport d'erreur :
    Erreur SQL : ORA-06575: Fonction F_LIST_DATE est dans un état non valide
    06575. 00000 -  "Package or function %s is in an invalid state"
    *Cause:    A SQL statement references a PL/SQL function that is in an
               invalid state. Oracle attempted to compile the function, but
               detected errors.
    *Action:   Check the SQL statement and the PL/SQL function for syntax
               errors or incorrectly assigned, or missing, privileges for a
               referenced object.

  8. #8
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2012
    Messages : 98
    Points : 45
    Points
    45
    Par défaut
    Salut j'ai trouvé la solution à mon problème même si l'exécution de la requête Select dure plus avec cette fonction PL/SQL.
    Le problème était au niveau de l'initialisation du table dateMax et de ses indices.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    30
    31
    32
    33
    34
    35
    36
    create or replace
    function f_list_date(nomEtabl IN VARCHAR2,date1 IN date,date2 IN date) return t_date is
    	dateMax t_date;
       	Nomb Number;
    	Annee Number;
    	Mois Number;
    	dateM date;
     begin
     	Nomb := Months_Between(date2, date1);
    	Annee := Trunc( Nomb/12);
      Mois := Trunc(Nomb-Annee*12);
    	dateMax:= t_date(trunc(sysdate));
    		IF (Mois>0) THEN
    			FOR i IN 0..Mois
    			LOOP
           dateMax.EXTEND ;
    				IF (i=0) THEN
    					SELECT MAX(date_generation) INTO dateM FROM ventes
    					WHERE CODE_ETABL=nomEtabl AND date_generation BETWEEN date1 AND LAST_DAY(date1);	
    				ELSIF(i=Mois) THEN
    					SELECT MAX(date_generation) INTO dateM FROM ventes
    					WHERE CODE_ETABL=nomEtabl AND date_generation BETWEEN '01'||'/'||to_char(date2,'MM/YYYY') AND date2;
    					
    				ELSE
    					SELECT MAX(date_generation) INTO dateM FROM ventes
    					WHERE CODE_ETABL=nomEtabl AND date_generation BETWEEN ADD_MONTHS( '01'||'/'||to_char(date1,'MM/YYYY'), i ) AND ADD_MONTHS( LAST_DAY(date1), i );
    				END IF;	
    				dateMax(i+1):=dateM;
    			END LOOP;
    		ELSE
    			SELECT MAX(date_generation) INTO dateM FROM ventes
    			WHERE CODE_ETABL=nomEtabl AND date_generation BETWEEN date1 AND date2;
    			dateMax(1):=dateM;
    		END IF;
    	RETURN dateMax;
     end;
    Cependant l'appel à la fonction dans le select dure plus que lorsque j'appelais la fonction datemult au debut de mon poste qui me retournais une chaine de caractère que plaçais dans le in du select. Voici la requete select :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    select CODE_PRODUIT "CODE PRODUIT",DESIGNATION,to_char(round(sum(QTE_VENDUE)),'999G999G999G999',  'nls_numeric_characters='', ''') "Qte Vendue",
    to_char(round(sum(VALEUR_VENTE)),'999G999G999G999',  'nls_numeric_characters='', ''') "C.A.H.T",
    to_char(round(sum(VALEUR)),'999G999G999G999',  'nls_numeric_characters='', ''') "VALEUR REV" ,
    to_char(round(sum(MARGE_HT)),'999G999G999G999',  'nls_numeric_characters='', ''') as MARGE,
    to_char(round((sum(VALEUR_VENTE)-sum(VALEUR))*100/nullif(sum(VALEUR_VENTE),0),2),'999G999G999G999D99',  'nls_numeric_characters='', ''') "TAUX",
    to_char(round(sum(QTE_STOCK_FINAL)) ,'999G999G999G999',  'nls_numeric_characters='', ''') "Qte Stock Final" 
    from ventes where CODE_ETABL =(select CODE_ETABL from ETABLISSEMENT where ETABLISSEMENT.DESCRIPTION='VGE') and DATE_GENERATION in (select * from table(f_list_date(CODE_ETABL,'01/08/2014','31/12/2014'))) group by CODE_PRODUIT,DESIGNATION order by CODE_PRODUIT asc;

  9. #9
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 947
    Points : 5 846
    Points
    5 846
    Par défaut
    Pour les problèmes de perfs il faut regarder le plan, le problème classique avec les tables de fonction est la cardinalité estimée.
    Le hint cardinality peut être intéressant si le nombre de ligne renvoyé par la fonction est à peu près stable :
    collections cardinality

    Par contre ne faites pas de conversion implicite (dans la fonction et dans l'appel de la fonction), il faut toujours utiliser to_date pour convertir la chaîne de caractères en date afin de préciser le format.

  10. #10
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2012
    Messages : 98
    Points : 45
    Points
    45
    Par défaut
    Par contre ne faites pas de conversion implicite (dans la fonction et dans l'appel de la fonction), il faut toujours utiliser to_date pour convertir la chaîne de caractères en date afin de préciser le format.
    Je fais pas de conversion implicite

  11. #11
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    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 : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Citation Envoyé par sabdoul Voir le message
    Je fais pas de conversion implicite
    Mais si
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ...select * from table(f_list_date(CODE_ETABL,'01/08/2014','31/12/2014'))) ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Appeler procédure stockée dans requête SELECT
    Par stever50 dans le forum Développement
    Réponses: 2
    Dernier message: 11/05/2010, 14h09
  2. appeler une procédure stockée dans une base mysql
    Par mennou dans le forum Hibernate
    Réponses: 4
    Dernier message: 16/06/2008, 01h58
  3. Réponses: 2
    Dernier message: 18/01/2008, 11h59
  4. [PEAR][DB] Appel de procédure stockée dans différents schémas sous postgresql
    Par rebolon dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 22/09/2006, 16h49
  5. Réponses: 3
    Dernier message: 17/01/2006, 17h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo