Sélection du contenu des indexs d'une table - SQL/NoSQL - Programmation
Marsh Posté le 25-05-2010 à 13:26:40
ReplyMarsh Posté le 25-05-2010 à 13:41:27
| Fred999 a écrit : Salut,  | 
 
 
J'avais déjà essayé, sans succès (que ce soit avec COLUMN_NAME, qui n'existe pas dans la vue DBA_INDEXES, ou avec INDEX_NAME, qui lui y figure) 
Marsh Posté le 25-05-2010 à 13:49:00
ya pas une table systeme du style user_tab_columns avec comme champs column_name?
Marsh Posté le 25-05-2010 à 13:49:40
Aaaah je comprends mieux 
 
Hum désolé dans ce cas je pourrai pas t'aider, j'ai pas le mdd des tables système d'Oracle sous la main 
Marsh Posté le 25-05-2010 à 14:09:04
| boomy29 a écrit : ya pas une table systeme du style user_tab_columns avec comme champs column_name? | 
 
 
Si, sauf que je n'y vois rien indiquant si la colonne est indexée. Je viens de trouver : il y a la table ALL_IND_COLUMN qui contient cette info. Par contre, toujours pas moyen de préciser dans la clause "where" du premier select qu'il faut vérifier le nom de la colonne. 
 
| Fred999 a écrit : Aaaah je comprends mieux  | 
 
 
Merci quand même   
 
Marsh Posté le 25-05-2010 à 14:41:18
et pourquoi tu veux passer par ta table pour faire ca? tu as le TABLE_OWNER et TABLE_NAME dans SYS.ALL_IND_COLUMNS c'est la dessus qu'il faut filtrer
Marsh Posté le 25-05-2010 à 14:48:29
| casimimir a écrit : et pourquoi tu veux passer par ta table pour faire ca? tu as le TABLE_OWNER et TABLE_NAME dans SYS.ALL_IND_COLUMNS c'est la dessus qu'il faut filtrer | 
 
 
Parce ce que je cherche en définitive, c'est le contenu des colonnes indexées. Sauf que j'essaie de parvenir à leur contenu, sans connaître à l'avance le nom desdites colonnes. 
 
En gros je veux faire l'équivalent de  
 
| Code : 
 | 
 
 
Sans avoir à préciser ID et NOM (on les suppose inconnus). 
 
Dans l'idée, ce serait quelque chose comme ça (syntaxiquement incorrect) : 
| Code : 
 | 
Marsh Posté le 25-05-2010 à 14:57:46
si tu passes par un language au dessus tu peux construire une requête qui la formaterait correctement, ou si tu veux rester ne pur oracle il faudra passer par du pl/sql pour générer la requête, mais je ne sais pas si il y a moyen de renvoyer un ref cursor a partir d'un sql dynamique. 
 
faut voir si c'est pour automatiser complètement ou bien si une fontion qui te revoie le sql que tu exécutes a coté te suffit
Marsh Posté le 25-05-2010 à 15:06:35
Réponse que je redoutais  Je peux éventuellement me débrouiller en programmant, mais l'idée était d'essayer de tout faire en une requête.
 Je peux éventuellement me débrouiller en programmant, mais l'idée était d'essayer de tout faire en une requête.
Marsh Posté le 25-05-2010 à 11:36:29
Bonjour 
 
Je cherche à récupérer le contenu de tous les index d'une table sous oracle.
Ce qui donne un peu près le code suivant :
Sauf qu'évidemment, ça ne marche pas
Quelqu'un aurait une idée de comment je pourrais faire ? Merci d'avance
---------------
L'ennemi est bête : il croit que c'est nous l'ennemi alors que c'est lui !