#1 Fri 30 April 2010 16:06
- frankySIG
- Participant occasionnel
- Date d'inscription: 12 Apr 2010
- Messages: 42
[geoserver 2.x] utiliser une vue Oracle
Bonjour, j'essaie de charger une vue oracle dans Geoserver, j'arrive à la publier tous se passe bien mais quand je la pré visualise avec OpenLayers j'ai un message d'erreur:
code="Internal error "org.vfny.geoserver.wms.WmsException: Rendering process failed
Rendering process failed
Exception rendering layer FeatureCollectionMapLayer[ CITIES, VISIBLE, UNSELECTED, style= Stylelmpl[
name=point], data=org.vfny.geoserver.global.GeoServerFeatureSource@53fb62f, query= Query:
feature type: CITIES
filter: [Filter.INCLUDE AND Filter.INCLUDE]
[properties:ALL]]
java.io.IOException
null
ORA-29902: erreur d'exécution de la routine ODCIIndexStart()
ORA-13208: erreur interne lors de l'évaluation de l'opérateur [window SRID does not match layer SRID]
ORA-06512: à "MDSYS.SDO_INDEX_METHOD_1OI", ligne 333
Est ce normal?
Dernière modification par frankySIG (Mon 03 May 2010 08:39)
Hors ligne
#2 Mon 03 May 2010 15:47
- frankySIG
- Participant occasionnel
- Date d'inscription: 12 Apr 2010
- Messages: 42
Re: [geoserver 2.x] utiliser une vue Oracle
j'ai finalement trouvé la solution à mon problème, voici la manipulation pour ceux qui seront intéréssé:
créer une view sur une table:
CREATE VIEW countries_view AS SELECT gid, geometry FROM world_countries
créer une contrainte de clé primaire sur la vue, cette fonction est disponible depuis la version 9 d'Oracle elle permet de définir la clé primaire que pourra utiliser geoserver:
ALTER VIEW countries_view ADD CONSTRAINT countries_view_pk PRIMARY KEY (gid)
insérer la vue dans la table USER_SDO_GEOM_METADATA:
INSERT INTO user_sdo_geom_metadata (table_name, column_name, diminfo, srid) SELECT 'countries_view', column_name, diminfo, srid FROM user_sdo_geom_metadata WHERE table_name='world_countries'
Après cela redémarré tomcat et geoserver, ajouter ensuite la vue comme n'importe qu'elle couche Oracle dans geoserver.
Avantage du système: permet de créer des vue regroupant des attributs de différentes tables sans passer par des requêtes, on peut donc 'construire' des objets avec les attributs de différentes tables.
Hors ligne