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 :

Requête sur toute une base


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 6
    Par défaut Requête sur toute une base
    Bonjour j ai réussi a mettre au point la requete suivante qui donne le nom de tous les champs de toutes les tables d'une base

    select table_name, column_name, table_name||'.'||column_name from dict_columns

    en suite j'ai envie de de faire une clause where pour recherche sur tous les champs une valeurs pariculiere ?

    comment je fais ?

    par exemple


    select table_name, column_name, table_name||'.'||column_name from dict_columns
    where table_name||'.'||column_name like '%toto%'

    mais ca marche pas .!!!



    car dans table_name||'.'||column_name je peux avoir du numérique ou du char ou des dates
    alors il faut que je controle selon les cas que c'est

    Merci d'avance

  2. #2
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    Recherche EXECUTE IMMEDIATE

  3. #3
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    Je vais me répéter :
    Citation Envoyé par McM Voir le message
    Recherche EXECUTE IMMEDIATE
    C'est le seul moyen d'avoir un nom de colonne dynamique pris en compte par le moteur sql.


    http://sheikyerbouti.developpez.com/execute_immediate/

  4. #4
    Membre Expert Avatar de fatsora
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 103
    Par défaut
    quelle est ta version Oracle

    a partir de 10G
    tu as regexp

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select table_name, column_name, table_name||'.'||column_name from dict_columns
    where regexp_like (table_name||'.'||column_name, '[[:digit:]]{5}');

    renvoie pare exemple ce qui contient 5 chiffres dans le nom de colonnes

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    500
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 500
    Par défaut
    dict_columns te donne les colonnes des vues du dictionnaire de données Oracle.
    Si tu veux vraiment les colonnes des tables que tu as créées, il faut utiliser user_tab_columns en excluant les OWNER tels que SYS et SYSTEM notamment.

    Par ailleurs, la colonne column_name ne contient que du VARCHAR2 (que ce soit pour dict_columns ou user_tab_columns) : elle stocke le nom des colonnes des vues ou tables.

  6. #6
    Nouveau membre du Club
    Inscrit en
    Novembre 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 6
    Par défaut PRECISIONS
    merci
    mais j'ai modifié ma requete
    maintenant j'ai

    -- ici je retrouve bien toutes mes tables mais pas acces aux nom des colones
    select distinct table_name from all_tables

    et il ne comprend pas select distinct table_name , column_name from all_tables

    alors que
    select distinct table_name, column_name from dict_columns me donne bien les infos que je veux mais il me manque des tables !

    c'est pas normal ?

  7. #7
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    500
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 500
    Par défaut
    Il faut prendre all_tab_columns

  8. #8
    Nouveau membre du Club
    Inscrit en
    Novembre 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 6
    Par défaut
    Merci !!!!
    c est ce que je voulais
    comment on met résolu ?



  9. #9
    Nouveau membre du Club
    Inscrit en
    Novembre 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 6
    Par défaut encore un pb
    heuu ... encore une sollicitation

    le where table_name||'.'||column_name like '%TOTO%'

    me trouve rien alors que je suis sur qu il y a un champ TOTO dans un des champs d'une table
    j'ai meme fait un UPPER pour etre sur et toujours rien

    si je fais

    select distinct table_name , column_name from all_tab_columns
    where table_name = 'TABLE_avec_TOTO_dedans'

    il trouve bien ma table et si je rajoute

    where table_name||'.'||column_name like '%TOTO%'

    plus rien

Discussions similaires

  1. Conversion de champs sur toute une base
    Par guen dans le forum Requêtes
    Réponses: 5
    Dernier message: 01/12/2011, 10h15
  2. Select sur toute une base.
    Par weejungle dans le forum SQL
    Réponses: 2
    Dernier message: 01/02/2008, 15h20
  3. Réponses: 4
    Dernier message: 06/09/2006, 14h04
  4. Réponses: 2
    Dernier message: 07/07/2005, 08h31
  5. [HTML] Tableaux sur toute une page
    Par tails dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 12/04/2005, 12h29

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