Bonjour à tous,
Voila un problème que je n'arrive pas à résoudre. Pour schématiser :
résultat :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 select TABLE_NAME from user_tab_columns where DATA_TYPE = 'SDO_GEOMETRY'
TABLE_A
TABLE_B
TABLE_C
TABLE_D
résutlat
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 select * from user_indexes
TABLE_A SPATIAL_INDEX
TABLE_A null
TABLE_B null
TABLE_B SPATIAL_INDEX
TABLE_C SPATIAL_INDEX
TABLE_C null
Résultat souhaité dans ma requête :
TABLE_A
TABLE_B
TABLE_C
TABLE_D
1. Dans oracle j'ai la table user_tab_columns qui contient tout les noms des colonnes de chaque table de mon schéma.
Je fais cette requête pour avoir uniquement les tables dont qui possèdent une colonne de stype SDO_GEOMETRY :
2. J'ai également une table user_indexes qui contient tout les index de mon schéma.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 select TABLE_NAME from user_tab_columns where DATA_TYPE = 'SDO_GEOMETRY'
Dans cette table je peux avoir plusieurs lignes pour le même nom de table. Par exemple si ma table à plusieurs indexs (un index spatial, un index de clé primaire ...)
3. Résutlat souhaité : j'aimerai par une requête dont je mettrai le résultat dans une vue pouvoir lister les tables qui ne possèdent pas d'index de type SPATIAL_INDEX (valeur stockée dans une colonne de user_indexes).
Le problème que je rencontre c'est que si je fais une simple jointure, il me ramène même les tables qui ont cet indexs puisque dans la table user_tab_columns j'ai autant de ligne que d'indexs.
Partager