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

Langage SQL Discussion :

[Oracle] faire apparaitre des guillemets dans le résultat d'une requete select


Sujet :

Langage SQL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 58
    Points : 33
    Points
    33
    Par défaut [Oracle] faire apparaitre des guillemets dans le résultat d'une requete select
    Bonjour,

    J'essaie de faire afficher une commande d'exécution en fonction du résultat d'une requete. Cette commande doit avoir ce format:
    ./exec.ksh 'OWNER1'
    ./exec.ksh 'OWNER2'

    j'utilise la requete suivante:
    select distinct owner from dba_objects
    where owner not in ( 'SYS', SYSTEM', 'OUTLN', 'DBSNMP', 'PERSFTAT', 'PUBLIC');

    Le problème, c'est que je n'arrive pas à mettre les noms ownerX entre guillemets...

    Quelqu'un aurait-il une idée?

    Merci d'avance

  2. #2
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    En SQL comme dans la plupart des langages d'ailleurs, pour faire apparaître un séparateur de chaîne dans une chaîne, il faut le dédoubler

    Ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SQL> SELECT 'Coucou l''ami' FROM Dual;
     
    'COUCOUL''AM
    ------------
    Coucou l'ami
     
    SQL>
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 58
    Points : 33
    Points
    33
    Par défaut
    Merci, mais malheureusement, cela ne suffit pas:

    j'ai besoin d'entourer de guillemets le champ récupéré par le select. Le problème, c'est que je ne peux pas aligner 3 guillemets sinon le résultat de la requete donne:
    ./exec.ksh 'distinct owner'

    Mon dernier essai qui ne fonctionne pas...

    select './exec.ksh '' ||distinct owner|| '' from dba_objects;

    Merci encore !!

  4. #4
    rsc
    rsc est déconnecté
    Membre éprouvé
    Avatar de rsc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 711
    Points : 918
    Points
    918
    Par défaut
    Citation Envoyé par slausseur
    Mon dernier essai qui ne fonctionne pas...

    select './exec.ksh '' ||distinct owner|| '' from dba_objects;
    Et :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select './exec.ksh ''' ||distinct owner|| '''' from dba_objects;
    ?
    Un guillemet pour ouvrir la chaîne, deux guillemets pour forcer l'insertion d'un guillemet à l'intérieur de la chaîne, un guillemet pour fermer la chaîne.
    Roland

  5. #5
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Il te faut 3 quotes là où tu en a mis 2 :
    - 1 comme séparateur
    - 2 pour la quote dans le chaîne

    Pour la fin, il en faut 4, puisque tu souhaites une chaîne composée d'une quote : 2 pour la dédoubler, 2 pour l'encadrer

    Et pour finir, tu dois appliquer ton DISTINCT à l'ensemble de ta chaîne, comme ceci ;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SQL> SELECT DISTINCT './exec.ksh ''' || owner || '''' from dba_objects;
     
    './EXEC.KSH'''||OWNER||''''
    -------------------------------------------
    ./exec.ksh 'TOTO'
    ./exec.ksh 'TITI'
    ./exec.ksh 'TATA'
    ...
    [Edit] Grillé par Roland, sauf qu'il faut "sortir" le DISTINCT pour l'appliquer à l'ensemble [/Edit]
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  6. #6
    rsc
    rsc est déconnecté
    Membre éprouvé
    Avatar de rsc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 73
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 711
    Points : 918
    Points
    918
    Par défaut
    Citation Envoyé par Xo
    sauf qu'il faut "sortir" le DISTINCT pour l'appliquer à l'ensemble
    Exact, je me suis focalisé sur les quotes et n'ai pas remarqué le distinct
    Roland

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 58
    Points : 33
    Points
    33
    Par défaut
    merci beaucoup, c'était donc le distinct qu'il fallait sortir !!
    tout fonctionne, merci encore

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

Discussions similaires

  1. faire apparaitre des images dans un champs du texte
    Par j_esti dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 08/09/2008, 13h09
  2. faire apparaitre des textbox dans un userform
    Par petiteabeille64 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 04/03/2008, 17h00
  3. Comment faire apparaitre des données dans une listbox
    Par nuans dans le forum Interfaces Graphiques
    Réponses: 3
    Dernier message: 14/05/2007, 15h04
  4. [réseau] faire apparaitre des postes dans le voisinage réseau
    Par chaval dans le forum Administration
    Réponses: 7
    Dernier message: 16/06/2006, 01h06
  5. Réponses: 3
    Dernier message: 05/08/2005, 19h34

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