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

SQL Oracle Discussion :

Nom de colonnes non statiques


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 123
    Par défaut Nom de colonnes non statiques
    bonjour,
    je cherche pour des besoins spécifiques, à retourner une table avec des noms de colonnes qui se varient selon la date du système:
    exemple du résultat attendu :
    SOMME042011
    --------------
    20
    30
    j'ai essayé avec la requête suivante mais ça se compile pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select s.total as (select 'SOMME/'||to_char(sysdate,'MONYYYYMM') from dual) from sommes s where ...
    comment faire pour avoir le bon résultat ? est ce que je dois passer par une procédure stocké ?

    Merci

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Oui, avec du SQL dynamique.
    Mais à mon avis vous devriez procéder à ce changement "ailleurs".

    Que faites-vous de ces données ?

  3. #3
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 461
    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 461
    Par défaut
    Si c'est dans SQL*Plus, ça peut se faire grâce à la variable de substitution prédéfinie _DATE.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SQL> alter session set nls_date_format='DDMMYYYY';
     
    SQL> select count(*) AS col&_DATE from user_objects;
     
    COL14042011
    -----------
          23121

  4. #4
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 123
    Par défaut
    Bonjour, et merci pour les réponses.
    Que faites-vous de ces données ?
    je développe une procédure stocké, et parmi les éléments retournés, il y a une colonne qui doit avoir comme nom COL/MONYYYYMM (exemple AVR201104).

    Si c'est dans SQL*Plus, ça peut se faire grâce à la variable de substitution prédéfinie _DATE.
    Je travaille avec l'outil Toad,lorsque j'essaie setter la date session avec le format "MONYYYYMM", une erreur se produit :
    ORA-01816: le mois ne peut être indiqué qu'une seule fois

  5. #5
    Membre Expert Avatar de ojo77
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Décembre 2010
    Messages
    680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 680
    Par défaut
    Citation Envoyé par edogawa Voir le message
    Je travaille avec l'outil Toad,lorsque j'essaie setter la date session avec le format "MONYYYYMM", une erreur se produit :
    Le formattage de la date pour NLS exige que chaque champs ne soit représenté qu'une fois (l'année, le mois, les secondes ...)

    Lorsque vous donnez le format MONYYYYMM, MON et MM représentent tous les deux le mois, pour utiliser la méthode décrite par Pomalaix il faut choisir une et une seule représentation du mois.

    Vous pouvez utiliser une variable que vous définissez vous même :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    14:16:34 SQL> column madate new_value ladate noprint
    14:16:41 SQL> select to_char(sysdate,'MONYYYYMM') madate from dual;
     
    1 row selected.
     
    14:16:45 SQL> select sysdate "col&ladate" from dual;
    old   1: select sysdate "col&ladate" from dual
    new   1: select sysdate "colAVR. 201104" from dual
     
    colAVR. 201104
    -------------------
    15/04/2011,14:16:51
     
    1 row selected.

  6. #6
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 123
    Par défaut
    Bonjour,
    Merci encore pour les réponses,
    Avec la procédure que je développe, il y a plusieurs colonnes que je dois retourner avec un nom dépendant de la date: je m'explique :
    SOMME042011 | SOMME032011 | SOMME022011
    ---------------------------------------------
    10 10 10
    20 30 40
    qu'est ce que vous pouvez me proposez pour ce cas ?

    Merci beaucoup de votre aide et excusez moi pour ces questions, je suis pas un expert PL SQL..

Discussions similaires

  1. Réponses: 1
    Dernier message: 21/01/2011, 15h17
  2. Réponses: 5
    Dernier message: 02/12/2010, 16h04
  3. Trigger INSERT : nom de colonne non valide
    Par arthuro45 dans le forum Développement
    Réponses: 6
    Dernier message: 13/09/2010, 21h58
  4. [requete] Nom de colonne non reconnue
    Par OverOne dans le forum Langage SQL
    Réponses: 4
    Dernier message: 25/06/2008, 17h43
  5. [SSIS] [2K5] : Nom de colonne non valide
    Par Adorien dans le forum SSIS
    Réponses: 0
    Dernier message: 13/05/2008, 16h37

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