Annonce
L’ambition de ce blog est de parler géomatique aux urbanistes :
- les tenir au courant de ce qui évolue en rapport avec leur métier,
- vulgariser un certain nombre de concept SIG et les éclairer par leur prolongement en urbanisme,
- communiquer sur les initiatives intéressantes …
Ce blog est un espace d’échange qui doit permettre de présenter des travaux, des réflexions intéressantes, des initiatives en toute liberté, et avec de l’envie.Les idées d’articles ne manquent pas , et Aline, rédactrice principale de ce blog, compte sur le soutien et la participation de toutes les bonnes volontés, spécialistes de l’urbanisme, utilisateurs ou non de SIG.
Alors, réagissez, faites passer l’information, inscrivez le blog dans vos flux RSS …
Et rendez-vous la semaine prochaine pour un premier article intitulé “L’essentiel … sur la numérisation des PLU”.
L’équipe GeoRezo
#1 ven 11 décembre 2009 16:05
- j-ben
- Membre
- Lieu: Toulouse
- Date d'inscription: 10 sep 2008
- Messages: 16
[Oracle] intégration shp
Bonjour,
Je cherche à intégrer des shp à Oracle 10g Enterprise Edition (donc avec l'extension Locator).
Je suis tombé sur cette page.
1ère solution : "Oracle Shapefile Converter" (fournie trois exécutables "shp2sdo.exe" pour intégrer les données sous NT, Solaris et Linux. Comment utiliser shp2sdo.exe sous Debian?? L'exé pour Windows me retourne : Programme trop grand pour tenir en mémoire).
doc : http://www.oracle.com/technology/softwa … hp2sdo.txt
download : http://www.oracle.com/technology/softwa … msoft.html
2ème solution : "Oracle Java Shapefile Converter" (utilisation d'une class Java, qui n'est pas trouvée lors de l'exécution)
doc : http://www.oracle.com/technology/softwa … readme.pdf
j'ai bien ce qui suit dans .bashrc :
Code:
ORACLE_HOME=/oracle export ORACLE_SID=SIG export JAVA_HOME=/usr/lib/jvm/java-6-sun export clpath=$ORACLE_HOME/md/jlib/sdoapi.jar:$ORACLE_HOME/md/jlib/sdoutl.jar:$ORACLE_HOME/jdbc/lib/ojdbc14.jar:$ORACLE_HOME/lib/xmlparserv2.jar
Cela donne :
Code:
oracle@oraclesig:/$ java -cp $clpath oracle.spatial.util.SampleShapefileToJGeomFeature -h http://localhost -p 1521 -s SIG -u my_user -d my_pass_word -t ma_couche -f /home/oracle/perso/topo/ma_couche -r 4326 -g geom
Exception in thread "main" java.lang.NoClassDefFoundError: oracle/spatial/util/SampleShapefileToJGeomFeature
Caused by: java.lang.ClassNotFoundException: oracle.spatial.util.SampleShapefileToJGeomFeature
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
Could not find the main class: oracle.spatial.util.SampleShapefileToJGeomFeature.
Program will exit.ci joint un post sur le forum d'oracle avec la même erreur.
Merci de me renseigner si vous connaissez une solution ou si vous utilisez une autre méthode.
Cordialement.
Dernière modification par j-ben (ven 11 décembre 2009 16:12)
Le savoir est la seul chose qui augmente quand on le partage.
J'aimerai bien changer le monde, mais pas moyen de mettre la main sur le code source ...
Hors ligne
#2 ven 11 décembre 2009 17:19
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 sep 2005
- Messages: 207
- Site web
Re: [Oracle] intégration shp
j-ben a écrit:
Bonjour,
Je cherche à intégrer des shp à Oracle 10g Enterprise Edition (donc avec l'extension Locator).
Je suis tombé sur cette page.
1ère solution : "Oracle Shapefile Converter" (fournie trois exécutables "shp2sdo.exe" pour intégrer les données sous NT, Solaris et Linux. Comment utiliser shp2sdo.exe sous Debian?? L'exé pour Windows me retourne : Programme trop grand pour tenir en mémoire).
doc : http://www.oracle.com/technology/softwa … hp2sdo.txt
download : http://www.oracle.com/technology/softwa … msoft.html
2ème solution : "Oracle Java Shapefile Converter" (utilisation d'une class Java, qui n'est pas trouvée lors de l'exécution)
doc : http://www.oracle.com/technology/softwa … readme.pdf
j'ai bien ce qui suit dans .bashrc :Code:
ORACLE_HOME=/oracle export ORACLE_SID=SIG export JAVA_HOME=/usr/lib/jvm/java-6-sun export clpath=$ORACLE_HOME/md/jlib/sdoapi.jar:$ORACLE_HOME/md/jlib/sdoutl.jar:$ORACLE_HOME/jdbc/lib/ojdbc14.jar:$ORACLE_HOME/lib/xmlparserv2.jarCela donne :
Code:
oracle@oraclesig:/$ java -cp $clpath oracle.spatial.util.SampleShapefileToJGeomFeature -h http://localhost -p 1521 -s SIG -u my_user -d my_pass_word -t ma_couche -f /home/oracle/perso/topo/ma_couche -r 4326 -g geom Exception in thread "main" java.lang.NoClassDefFoundError: oracle/spatial/util/SampleShapefileToJGeomFeature Caused by: java.lang.ClassNotFoundException: oracle.spatial.util.SampleShapefileToJGeomFeature at java.net.URLClassLoader$1.run(URLClassLoader.java:200) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:252) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) Could not find the main class: oracle.spatial.util.SampleShapefileToJGeomFeature. Program will exit.ci joint un post sur le forum d'oracle avec la même erreur.
Merci de me renseigner si vous connaissez une solution ou si vous utilisez une autre méthode.
Cordialement.
Bonjour,
Perso, je me sers parfois du programme java d'oracle, apres avoir appliqué le patch pour remplacer un des jars necessaires au programme (http://www.oracle.com/technology/softwa … readme.txt)
Sinon, ogr2ogr fera ca tres bien, avec un controle important sur ce qui est fait lors de l'import oracle (colonnes, filtres, etc).
Le message d'erreur me fait penser a un mauvais classpath. Pouvez-vous verifier que les 3 ou 4 jars necessaires au programme (de memoire, sdoutl.jar, sdoapi.jar et ... zut plus de memoire
) sont bien presents dans le classpath ?
Nicolas
Hors ligne
#3 lun 14 décembre 2009 18:29
- j-ben
- Membre
- Lieu: Toulouse
- Date d'inscription: 10 sep 2008
- Messages: 16
Re: [Oracle] intégration shp
Nicolas Ribot a écrit:
Le message d'erreur me fait penser a un mauvais classpath. Pouvez-vous verifier que les 3 ou 4 jars necessaires au programme (de memoire, sdoutl.jar, sdoapi.jar et ... zut plus de memoire
) sont bien presents dans le classpath ?
Exactement. Une erreur c'était glissée dans mon classpath.
Une fois cette erreur corrigée, je n'arrive toujours pas à intégrer des shp.
Code:
oracle@oraclesig:/$ java -cp $clpath oracle.spatial.util.SampleShapefileToJGeomFeature -h http://localhost -p 1521 -s SIG -u my_user -d my_pass_word -t ma_couche -f /home/oracle/perso/topo/ma_couche -r 4326 -g geom
Parameters:
<Filename>: File name of an input Shapefile (without extension)
<Table name>: Table name for the result
[SRID]: Valid Oracle SRID for coordinate system; use 0 if unknown
<ID Column name>: Column name for unique numeric ID; if required
oracle@oraclesig:/$ java -cp $clpath oracle.spatial.util.SampleShapefileToJGeomFeature /home/oracle/perso/topo/ma_couche ma_couche 2154 id_com
Connecting to DB...
java.sql.SQLException: Exception d'E/S: The Network Adapter could not establish the connection
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:255)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:387)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:414)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at oracle.spatial.util.SampleShapefileToJGeomFeature.main(SampleShapefileToJGeomFeature.java:110)
Dropping old table...
Exception in thread "main" java.lang.NullPointerException
at oracle.spatial.util.SampleShapefileToJGeomFeature.prepareTableForData(SampleShapefileToJGeomFeature.java:252)
at oracle.spatial.util.SampleShapefileToJGeomFeature.main(SampleShapefileToJGeomFeature.java:129)Au vu de des réponses de la console ci-dessus, je ne suis plus sur de la syntaxe à adopter pour intégrer les shp.
La 1ère : celle du tutoriel (http://www.oracle.com/.../shape2sdojava_readme.txt) qui me revoie les paramètre à renseigner
La 2éme : où je rentre les paramètres demandés ci-dessus, et qui essaie (au moins) de ce connecter à la base, mais en vain.
Il doit y avoir un moyen de renseigner les paramètres de la base directement à java. Cela devrait permettre au driver jdbc de se connecter à la base sans problème.
Une petite idée? Merci.
La suite au prochain numéro.
Le savoir est la seul chose qui augmente quand on le partage.
J'aimerai bien changer le monde, mais pas moyen de mettre la main sur le code source ...
Hors ligne
#4 lun 14 décembre 2009 23:11
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 sep 2005
- Messages: 207
- Site web
Re: [Oracle] intégration shp
j-ben a écrit:
Nicolas Ribot a écrit:
Le message d'erreur me fait penser a un mauvais classpath. Pouvez-vous verifier que les 3 ou 4 jars necessaires au programme (de memoire, sdoutl.jar, sdoapi.jar et ... zut plus de memoire
) sont bien presents dans le classpath ?
Exactement. Une erreur c'était glissée dans mon classpath.
Une fois cette erreur corrigée, je n'arrive toujours pas à intégrer des shp.Code:
oracle@oraclesig:/$ java -cp $clpath oracle.spatial.util.SampleShapefileToJGeomFeature -h http://localhost -p 1521 -s SIG -u my_user -d my_pass_word -t ma_couche -f /home/oracle/perso/topo/ma_couche -r 4326 -g geom Parameters: <Filename>: File name of an input Shapefile (without extension) <Table name>: Table name for the result [SRID]: Valid Oracle SRID for coordinate system; use 0 if unknown <ID Column name>: Column name for unique numeric ID; if required oracle@oraclesig:/$ java -cp $clpath oracle.spatial.util.SampleShapefileToJGeomFeature /home/oracle/perso/topo/ma_couche ma_couche 2154 id_com Connecting to DB... java.sql.SQLException: Exception d'E/S: The Network Adapter could not establish the connection at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:255) at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:387) at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:414) at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165) at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35) at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801) at java.sql.DriverManager.getConnection(DriverManager.java:582) at java.sql.DriverManager.getConnection(DriverManager.java:185) at oracle.spatial.util.SampleShapefileToJGeomFeature.main(SampleShapefileToJGeomFeature.java:110) Dropping old table... Exception in thread "main" java.lang.NullPointerException at oracle.spatial.util.SampleShapefileToJGeomFeature.prepareTableForData(SampleShapefileToJGeomFeature.java:252) at oracle.spatial.util.SampleShapefileToJGeomFeature.main(SampleShapefileToJGeomFeature.java:129)Au vu de des réponses de la console ci-dessus, je ne suis plus sur de la syntaxe à adopter pour intégrer les shp.
La 1ère : celle du tutoriel (http://www.oracle.com/.../shape2sdojava_readme.txt) qui me revoie les paramètre à renseigner
La 2éme : où je rentre les paramètres demandés ci-dessus, et qui essaie (au moins) de ce connecter à la base, mais en vain.
Il doit y avoir un moyen de renseigner les paramètres de la base directement à java. Cela devrait permettre au driver jdbc de se connecter à la base sans problème.
Une petite idée? Merci.
La suite au prochain numéro.
Bonsoir,
Je ne vois pas les parametres attendus pour se connecter a Oracle dans votre ligne de commande ?
Voici, si ca peut aider, un script shell qui definit les parametres attendus par le programme Oracle pour charger un shapefile dans une base Oracle.
Je m'en servais pour charger des fichiers de tests pour Spatial.
Un outil comme SQL developer, d'Oracle, est bien utile egalement, ne serait-ce que pour tester une connexion java vers sa base Oracle, parametres qui devront etre les memes dans la ligne de commande.
Nicolas
Code:
#!/bin/sh
echo "loading countries shapefile..."
SHPFILE="/Users/nicolas/geodata/GEOFLA-dep-L2-SF/lim_adm_france_dom"
DBUSER="g"
DBPWD="g"
HOST="192.168.0.11"
DBSID="XE"
DBTABLE="LIM_DEP_FRANCE"
DBPORT="1521"
GEOCOL="the_geom"
IDXCOL="gid"
SRID="0"
XBOX="'-180,180'"
YBOX="'-90,90'"
ORADRIVER=./ojdbc14.jar
ORACP=./sdoutl.jar:./sdoapi.jar
echo java -cp .:${ORADRIVER}:${ORACP} shp2sdo -h $HOST -p $DBPORT -s $DBSID -u $DBUSER -d $DBPWD -t $DBTABLE -f $SHPFILE -g $GEOCOL -i $IDXCOL -r $SRID -x $XBOX -y $YBOX
java -cp .:${ORADRIVER}:${ORACP} shp2sdo -h $HOST -p $DBPORT -s $DBSID -u $DBUSER -d $DBPWD -t $DBTABLE -f $SHPFILE -g $GEOCOL -i $IDXCOL -r $SRID -x $XBOX -y $YBOX
echo "$SHPFILE loaded into table $DBTABLE..."Ce code doit pouvoir s'adapter facilement en batch ![]()
Nicolas
Hors ligne
