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

Oracle Discussion :

Que signifie les #, $, @ dans des variables ?


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 27
    Par défaut Que signifie les #, $, @ dans des variables ?
    Question peut-être un peu décalé pour ne pas dire bête, mais je suis devant une requête dynamique en SQL PL/SQL dans laquelle je trouve ce genre de chose :

    select #toto as [nom du champs 1],
    b.t$[nom du champs 2],
    b.t$[nom du champs 3],
    ...etc etc...
    From [nom de la table]#toto@base_source

    1/ "#" kesako ?
    2/ $ que signifie t-il ?
    3/ "@" a quoi sert-il ?

  2. #2
    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
    Bonjour

    Ceci n'est pas une syntaxe SQL valide.
    Quand vous dites que c'est dynamique, c'est généré par quel outil ?

  3. #3
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    181
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 181
    Par défaut
    tu utilse quel SGBD ?

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Par défaut
    '# est autorisé dans les noms de colonnes si la colonne est créée avec le nom entre ".
    Il n'y a pas de restriction sur pour '$':

    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
    SQL> select * from v$version;
     
    BANNER
    ----------------------------------------------------------------
    Oracle9i Enterprise Edition Release 9.2.0.6.0 - Production
    PL/SQL Release 9.2.0.6.0 - Production
    CORE    9.2.0.6.0       Production
    TNS for 32-bit Windows: Version 9.2.0.6.0 - Production
    NLSRTL Version 9.2.0.6.0 - Production
     
    SQL> create table t ("#c1" int);
     
    Table created.
     
    SQL> select "#c1" from t;
     
    no rows selected
     
     
    SQL> create table t$ (c$ int);
     
    Table created.
     
    SQL> select c$ from t$;
     
    no rows selected

  5. #5
    Membre Expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Par défaut
    On a aussi:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SQL> create table "t@" ("c@" int);
     
    Table created.
    mais "@" est en général plutôt réservé pour les noms de services Oracle Net dans les database links ou les chaînes de connexions:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <user>/<password>@<service>
    En résumé: '#' et '$' n'ont pas de signification particulière dans les noms d'objets Oracle alors que "table@dblink" signifie que la table est située sur une autre base de données accessible par le database link "dblink".

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 27
    Par défaut
    Citation Envoyé par pifor
    En résumé: '#' et '$' n'ont pas de signification particulière dans les noms d'objets Oracle alors que "table@dblink" signifie que la table est située sur une autre base de données accessible par le database link "dblink".
    Merci...cette syntaxe me perturbait dans un code qui reste classique:
    [Select...,...,...
    from........
    Where.....]

  7. #7
    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
    Citation Envoyé par philuciole
    Merci...cette syntaxe me perturbait dans un code qui reste classique:
    [Select...,...,...
    from........
    Where.....]
    Pas d'accord !
    Les crochets [ ] n'ont rien de classique dans une syntaxe Oracle.
    Et je suis prêt à parier que les # introduisent tout bêtement des commentaires.

    Votre "code" est probablement traité par un outils tiers qui génère ensuite du vrai SQL.

Discussions similaires

  1. Réponses: 1
    Dernier message: 04/06/2010, 11h10
  2. Que signifient les [..] placés dans le code
    Par vtuning.net dans le forum C#
    Réponses: 2
    Dernier message: 01/10/2009, 10h22
  3. Réponses: 6
    Dernier message: 24/11/2008, 20h51
  4. Réponses: 2
    Dernier message: 22/06/2008, 15h41
  5. Que signifie les <> dans un code java?
    Par developper2006 dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 23/01/2008, 15h11

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