[Gvsig_desarrolladores] Programando en gvSIG, Oracle Spatial
Juan Lucas Dominguez Rubio
jldominguez en prodevelop.es
Jue Oct 25 10:43:28 CEST 2007
Hola, Antonio:
La extensión Oracle Spatial añade una tabla llamada ORA_EPSG al proyecto actual de gvSIG que sirve para convertir los códigos EPSG en códigos Oracle y viceversa. Por lo que veo en tu traza, esa tabla no existe, con lo cual supongo que no has cargado dicha extensión. Si la has cargado y te sale ese error, envíanos el archivo:
C:\Documents and Settings\<usuario>\gvSIG\gvSIG.log
Para crear la tabla sin haber cargado la extensión de Oracle Spatial, debes ejecutar este código antes de instanciar los drivers Oracle:
OraEpsgTableLoader loader = new OraEpsgTableLoader();
if (!loader.createOracleEpsgTable()) {
logger.error("Unable to create ORA_EPSG datasource!");
}
Saludos,
Juan Lucas Domínguez Rubio
Prodevelop SL, Valencia (España)
Tlf.: 96.351.06.12 -- Fax: 96.351.09.68
http://www.prodevelop.es <http://www.prodevelop.es/>
________________________________
De: gvsig_desarrolladores-bounces en runas.cap.gva.es en nombre de Antonio Fdez Carpio
Enviado el: mié 24/10/2007 9:24
Para: Lista de Desarrolladores de gvSIG
Asunto: [Gvsig_desarrolladores] Problemas Oracle Spatial
Hola lista. Tengo un problema al ejecutar el siguiente código que devuelve el driver de una conexion Oracle
try {
String fidField =
"id"; // BE CAREFUL => MAY BE NOT!!!
String geomField =
"localizacion"; // BE CAREFUL => MAY BE NOT!!! =>
String[] fields =
new String[1];
fields[0] =
"id";
String whereClause =
"";
OracleSpatialDriver driver =
new OracleSpatialDriver();
// Here you can set the workingArea
// driver.setWorkingArea(dbLayerDefinition.getWorkingArea());
String strEPSG =
"23030";
DBLayerDefinition lyrDef =
new DBLayerDefinition();
lyrDef.setName(dbtable);
lyrDef.setTableName(dbtable);
lyrDef.setWhereClause(whereClause);
lyrDef.setFieldNames(fields);
lyrDef.setFieldGeometry(geomField);
lyrDef.setFieldID(fidField);
// if (dbLayerDefinition.getWorkingArea() != null)
// lyrDef.setWorkingArea(dbLayerDefinition.getWorkingArea());
lyrDef.setSRID_EPSG(strEPSG);
if (driver instanceof ICanReproject) {
((ICanReproject) driver).setDestProjection(strEPSG);
}
driver.setData(conn, lyrDef);
IProjection proj =
null;
if (driver instanceof ICanReproject) {
proj = CRSFactory.getCRS(
"EPSG:23030");
}
return driver;
}
catch (Exception e) {
e.printStackTrace();
}
Este codigo devuelve los siguiente errores en Eclipse:
ERROR [main] (
OracleSpatialDriver.java:3167) - Error with SQL statement. com.hardcode.gdbms.engine.data.NoSuchTableException : ORA_EPSG
WARN [main] (
OracleSpatialDriver.java:450) - No SRID found for this table.
ERROR [main] (
OracleSpatialDriver.java:3224) - Error with SQL statement. com.hardcode.gdbms.engine.data.NoSuchTableException : ORA_EPSG
ERROR [main] (
OracleSpatialDriver.java:3167) - Error with SQL statement. com.hardcode.gdbms.engine.data.NoSuchTableException : ORA_EPSG
SPHEROID["WGS84", 6378137.0, 298.257223563]
DEBUG [Thread-1] (
OracleSpatialDriver.java:871) - SQL para leer ids: select rowid, c.localizacion.SDO_ELEM_INFO from TRAMO c
INFO [Thread-1] (
OracleSpatialDriver.java:879) - FETCH_SIZE = 15000
DEBUG [Thread-1] (
OracleSpatialDriver.java:899) - Beginning of result set:
INFO [Thread-1] (
OracleSpatialDriver.java:922) - IDs read: 0
INFO [Thread-1] (
OracleSpatialDriver.java:352) - Ids thread delayed by: 938 ms.
Alguien sabe porque puede ocurrir esto??
------------ próxima parte ------------
Se ha borrado un mensaje que no está en formato texto plano...
Nombre : no disponible
Tipo : application/ms-tnef
Tamaño : 9161 bytes
Descripción: no disponible
Url : http://runas.cap.gva.es/pipermail/gvsig_desarrolladores/attachments/20071025/d68b92b5/attachment.bin
Más información sobre la lista de distribución gvSIG_desarrolladores