Problème avec Oracle : Assistant Spatial Index Advisor
Salut !!!
Je sais que vous aimez tous Oracle et plus précisement Oracle Spatial !!! (hmmm oui 8-) )
Ce que j'ai fait et qui marche :
j'ai transformer un Shape en SDO avec l'utilitaire fourni par Oracle, et j'ai tout mis sur ma base ! Ca marche c'est beau c'est chouette ! J'ai également créé un Index !
J'arrive a requéter sur cette base
Ce qui ne marche pas :
Je ne peux pas visionner la table à l'aide de l'outil : "Assistant Spatial Index Advisor" fourni dans le Manager Oracle :
Ma table apparaît (elle est donc reconnu comme contenant des géométries), je la sélectionne et je procède à l'affichage dans la lucarne ! Rien... pas de plantage, mais pas d'affichage ! J'ai changer les coordonnées de la lucarne pour voir si c'était dû à un problème d'échelle mais apparement non !
Si je Zoom ou DeZoom, j'obtiens ce message :
Erreur d'initialisation : L'objet serveur n'a pas pu être initialisé : ORA-29902: erreur d'exécution de la routine ODClIndexStart()
ORA-13030: Dimension non valide pour l'objet SDO_GEOMETRY
ORA-06512: à"MDSYS.SDO_INDEX_METHOD_10l", ligne 286
Je sais pas ou chercher cette ligne 286 et je sais pas pourquoi ça plante... Si quelque'un a une solution... Au moins me dire où chercher...
Merci, @+
Antoine
Pour ceux que ca intéresse...
Pour ceux qui serait curieux de savoir comment j'ai résolue le problème, voilà la solution... :
Il faut est il suffit de faire attention au système de coordonnées du Shape qu'on exporte et d'ailleurs, il faut renseigner ce paramètre au moment de l'export du shape. Cela se fait grâce à l'utilitaire SDO2SHP.EXE fourni par Oracle et disponible sur leur site !!!
La commande d'exécution de cette utilitaire donne cela :
shp2sdo.exe monshape matable -g geom -d -x (-180,180) -y (-90,90) -s 8307 -t 0.5 -v
Tout ce qui est en noir, à priori, ca ne pose pas de soucis, il s'agit donc juste de copier/coller...
monshape : c'est le titre (et je dis bien le titre, c'est à dire le nom du fichier amputé de son extension) du fichier Shape (extension .shp). Il ne faut renseigner que le titre car avec ce Shape, sont disponibles également 2 autres fichiers aux extensions .dbf et .shx. Ces deux fichiers doivent avoir le même titre que le Shape.
matable : simplement le nom de la table que l'on souhaite créer...
(-180,180) : les bornes inférieures et supérieures de l'axe des X de la zone représentée par toutes les géométries de la future table. Je ne connait pas encore de moyen fiable de détecter ces bornes, la solution est donc de viser large... !
(-90,90) : les bornes inférieures et supérieures de l'axe des Y de la zone représentée par toutes les géométries de la future table.
8307 : c'est le numéro de référence du système de coordonnées de notre Shape et donc de notre future Table (appelé SRID dans Oracle). Ici 8307 équivaut au système WGS84. Par exemple si notre Shape est en Lambert 2 Etendu (équivalent du Lambert 2 Carto), on utilisera la référence 41014.
Il existe une multitude de système de coordonnées et il est impossible de tous les citer. Pour en avoir une liste, il vous suffit d'exécuter cette requête : select srid, wktext from cs_srs;
Cette requête vous renverra un grand nombre de résultat (4384) :
srid = numéro de référence
wktext = texte décrivant le système
En effet, la recherche est très longue mais je crois que c'est le seul moyen, vous pouvez aussi faire des requête du genre : select srid, wktext from cs_srs where wktext like '%Lambert%';
Ca limite un peu la recherche...
Une fois que vous savez quel référence équivaut à votre système, vous pouvez lancer SHP2SDO !!! Ensuite il ne vous reste plus qu'a exécuter le script SQL fourni par cette utilitaire ! Enfin à l'aide de SQLLDR, vous charger toutes les données de la base grâce au fichier .ctl fourni par l'utilitaire : sqlldr utilisateur/password matable.ctl
N'hésitez pas si vous avez des questions !!!
@++
Antoine