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 :

Oracle SQL : Comment nommer deux colonnes avec le même nom ?


Sujet :

SQL Oracle

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2013
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Oracle SQL : Comment nommer deux colonnes avec le même nom ?
    Bonjour,
    Je questionne directement une DB oracle via une commande sql dans laquelle je redéfinis mes noms de colonnes avec le mot clé AS.
    Par contre, je vourdais nommer deux colonnes avec le même nom. Dans mon exemple je voudrais avoir deux colonnes « NumCmd » mais sql me renomme systématiquement ma deuxième colonne « NumCmd » en « NumCmd_1 ».

    Requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT '01234567'||LPAD(TO_CHAR(O383104.XLFNZ1),5,0) as "NumCmd", '01234567' as "NumCmd", '21/03/2013' as "DatLiv", LPAD(TO_CHAR(O383104.XLFNZ1),5,0) as "RefPdv", O383104.AVILLE as "NomCli", O383104.CDARTI as "RefArt", O383104.QCCFCV as "QteCmd", O383104.LARTCL as "LibArt"
    FROM HAPDW1.BIM_RFTZ95W_BE O383104
    WHERE ( O383104.CSTATU IN (1,2) ) AND ( O383104.LDPART = 'FRAIS' ) AND ( O383104.CBASE_P = '080' )
    ORDER BY LPAD(TO_CHAR(O383104.XLFNZ1),5,0) DESC, O383104.CDARTI ASC;
    Pour info, quand je charge requête sql ci-dessous dans Oracle Discoverer j’obtiens bien mes 2 colonnes avec le même nom d’en-tête NumCmd.
    Mais la même requête exécuté via C# ou même via Oracle SQL Developer donne une résulta où l’en-tête de ma deuxième col NumCmd est renommé en NumCmd_1.
    Hors pour des raisons d’automatisation j’ai besoin de lancer mes requêtes via C#
    Avez-vous une solution de type sql pour contourner ce problème svp

    Merci d'avance

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    À la rigueur qu'un outil d'affichage présente deux colonnes avec le même nom, je peux l'envisager, mais on est déjà en train de travestir certains principes fondamentaux de la théorie relationnelle.

    Imaginez le cas de figure suivant, très simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    create table t_test (colonne number, colonne number);
    insert into t_test values (1, 2);
    commit;
    Si ça fonctionnait, que voulez comme résultat de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select colonne from t_test;
    1 ou 2 ?

  3. #3
    Membre expérimenté 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 : 49
    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
    Points : 1 597
    Points
    1 597
    Par défaut
    Avec SQL*plus :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SQL> col C1 heading col
    SQL> col C2 heading col
    SQL>
    SQL>
    SQL> select 1 C1, 2 C2 from dual
    SQL> /
     
           col        col
    ---------- ----------
             1          2
    Je rejoins waldar sur l'intérêt discuttable de la chose

  4. #4
    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
    Sans même invoquer la théorie relationnelle, je trouve la demande contraire au simple bon sens : pourquoi chercher l'ambiguïté en donnant le même nom à des choses différentes ?

    Mais ça passe sans problème dans SQL*Plus :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    select empno as col, ename as col, sal as col 
    from scott.emp;
     
           COL COL               COL
    ---------- ---------- ----------
          7369 SMITH             800
          7499 ALLEN            1600
          7521 WARD             1250
          7566 JONES            2975
    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

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2013
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Bonjour,
    Je comprends vos réserves, mais mon problème vient du fait que j’essaie d’automatiser un ensemble de travail qui devient de plus en plus lourd à effectuer manuellement.
    Une partie de ce travail consiste à exécuter avec Oracle Discoverer, différentes requêtes avec différents paramètres en fonction des destinataires et exporter vers différents formats de fichier (xls, csv, txt) tjrs en fonction des destinataires.
    Hors dans mon résultat Discoverer j’avais la possibilité d’afficher deux colonnes avec le même nom d’en-tête.
    Tout ceci sans (si possible) devoir dire aux destinataires de modifier leur système d’interface avec leur ERP.



    Pour rappel, je lance les requêtes dans C# mais même dans SQL Developer la deuxième colonne NumCmd est renommé en NumCmd_1.

    Encore merci pour vos interventions
    Images attachées Images attachées  

Discussions similaires

  1. [Langage/Algorithme] Deux Classes avec le même nom déclaré dans Deux CPP différents
    Par ShaiLeTroll dans le forum C++Builder
    Réponses: 8
    Dernier message: 09/10/2012, 10h35
  2. Réponses: 5
    Dernier message: 04/04/2010, 00h14
  3. Réponses: 4
    Dernier message: 05/06/2008, 09h51
  4. Deux instances avec le même nom.
    Par Denn's dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 14/03/2008, 09h09
  5. PL/SQL - Comment afficher une image avec HTP ?
    Par patmaba dans le forum PL/SQL
    Réponses: 2
    Dernier message: 08/07/2004, 09h28

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