[ORACLE]Reque te sql
Fermé
Maure
-
12 déc. 2008 à 11:34
sandul Messages postés 3927 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 8 octobre 2010 - 18 déc. 2008 à 15:02
sandul Messages postés 3927 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 8 octobre 2010 - 18 déc. 2008 à 15:02
Bonjour,
Je voudrais écrire une requête en oracle poyr récupérer toutes les colonnes FK de ma table, ou mieux encore récuprer les noms des tables que ces colonnes référent ....
Davance Merci,
Maure,
Je voudrais écrire une requête en oracle poyr récupérer toutes les colonnes FK de ma table, ou mieux encore récuprer les noms des tables que ces colonnes référent ....
Davance Merci,
Maure,
A voir également:
- [ORACLE]Reque te sql
- Logiciel sql - Télécharger - Bases de données
- Requête sql pix - Forum Python
- Identificateur non valide oracle ✓ - Forum Bases de données
- Jointure sql ✓ - Forum MySQL
- Oracle america inc virus ✓ - Forum Virus
10 réponses
sandul
Messages postés
3927
Date d'inscription
jeudi 22 mai 2008
Statut
Membre
Dernière intervention
8 octobre 2010
723
12 déc. 2008 à 11:55
12 déc. 2008 à 11:55
Salut,
Essaie ceci:
++
Essaie ceci:
SELECT a1.owner, a1.constraint_name, a1.constraint_type, a1.table_name AS original_table, a1.r_owner, a1.r_constraint_name, a2.table_name AS ref_to_table FROM all_constraints a1, all_constraints a2 WHERE a1.r_constraint_name = a2.constraint_name AND a1.constraint_type = 'R' AND a1.table_name = 'MA_TABLE';
++
Merci pour cette requete, mais ca ne marche pas : la table qui contient la clé FK n'apparais pas dans la colonne table_name ???
Maure,
Maure,
sandul
Messages postés
3927
Date d'inscription
jeudi 22 mai 2008
Statut
Membre
Dernière intervention
8 octobre 2010
723
12 déc. 2008 à 17:55
12 déc. 2008 à 17:55
HEu... J'ai écrit la requête avec une base 10g et ça marche. Est-ce que tu as des lignes retournées (avec le champ ref_to_table à vide) ou rien du tout?
Autant pour moi, non effectivement ta requete fonctionne très bien et elle réponds aux besoins ...
Un grand merci à toi ...
Maure
Un grand merci à toi ...
Maure
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
sandul
Messages postés
3927
Date d'inscription
jeudi 22 mai 2008
Statut
Membre
Dernière intervention
8 octobre 2010
723
15 déc. 2008 à 11:29
15 déc. 2008 à 11:29
:-)
Je reviens de nouveau vers toi pour une nouvelle question oracle ...,
J'ai une table qui contient des colonnes je lis ces colonnes via la vie all_tab_columns et je recupère des infos sur chaque colonne (nullable, type, ...) mais il me reste iune info que je n'ai pas pu trouvé : savoir si la colonne est une FK?
D'avance merci.
J'ai une table qui contient des colonnes je lis ces colonnes via la vie all_tab_columns et je recupère des infos sur chaque colonne (nullable, type, ...) mais il me reste iune info que je n'ai pas pu trouvé : savoir si la colonne est une FK?
D'avance merci.
sandul
Messages postés
3927
Date d'inscription
jeudi 22 mai 2008
Statut
Membre
Dernière intervention
8 octobre 2010
723
15 déc. 2008 à 15:50
15 déc. 2008 à 15:50
Hello,
Je ferais qqchose comme ceci:
++
Je ferais qqchose comme ceci:
SELECT atc.*, DECODE (c.constraint_type, 'R', 'y', 'n') AS is_fk FROM all_tab_columns atc, all_cons_columns cc, all_constraints c WHERE atc.owner = cc.owner AND atc.table_name = cc.table_name AND atc.column_name = cc.column_name AND cc.constraint_name = c.constraint_name==> la colonne is_fk te donne l'info souhaitée.
++
Franchement je n'ai pas réussie à te mettre une colle ... j'essaierai al prochaine fois
Grand, grand merciiiiiiiiiiiiiii, ça réponds bien à ce que je chercher ...
Maure
Grand, grand merciiiiiiiiiiiiiii, ça réponds bien à ce que je chercher ...
Maure
Bonjour,
une fois de plus je reviens vers toi pour une nouvelle question :
voila je fais :
Select ma_table.* from ma_table
qu'est ce qu'il peut me garantir que la 1ere colonne à traiter soit toujours la colonne de la clé primaires ?
Dans tous les tests que j'ai pu passer la 1ere colonne correspond toujours à la PK mais je ne sais pas si c'est une règle ou c'est complètement le hasard ?
D'avance Merci ...
une fois de plus je reviens vers toi pour une nouvelle question :
voila je fais :
Select ma_table.* from ma_table
qu'est ce qu'il peut me garantir que la 1ere colonne à traiter soit toujours la colonne de la clé primaires ?
Dans tous les tests que j'ai pu passer la 1ere colonne correspond toujours à la PK mais je ne sais pas si c'est une règle ou c'est complètement le hasard ?
D'avance Merci ...
sandul
Messages postés
3927
Date d'inscription
jeudi 22 mai 2008
Statut
Membre
Dernière intervention
8 octobre 2010
723
18 déc. 2008 à 15:02
18 déc. 2008 à 15:02
Re,
Ce n'est pas une règle.... L'ordre des colonnes retournées par un select * correspond à la définition de la table (l'ordre des lignes dans l'instruction create table). La colonne PK est habituellement en 1ère position, mais ceci n'est pas une obligation.
Pour savoir cet ordre:
++
Ce n'est pas une règle.... L'ordre des colonnes retournées par un select * correspond à la définition de la table (l'ordre des lignes dans l'instruction create table). La colonne PK est habituellement en 1ère position, mais ceci n'est pas une obligation.
Pour savoir cet ordre:
desc ma_tablesous sqlplus (ou dans TOAD).
++