Bonjour à tous,

Voila un problème que je n'arrive pas à résoudre. Pour schématiser :

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'
résultat :
TABLE_A
TABLE_B
TABLE_C
TABLE_D

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
select *
from user_indexes
résutlat
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 :

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'
2. J'ai également une table user_indexes qui contient tout les index de mon schéma.

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.