Sto cercando di utilizzare JDBC per visualizzare le righe in una tabella creata in un database Oracle 11g, il problema è che non riesco a ottenere il valore dell'attributo "SHAPE" di tipo "SDO_GEOMETRY" utilizzando il seguente codice, che tra l'altro funziona bene quando si tratta di altri attributi della tabella:Valore di visualizzazione dell'attributo di tipo SDO_GEOMETRY
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
System.out.println("Driver O.K.");
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String user = "system";
String passwd = "isima";
Connection conn = DriverManager.getConnection(url, user, passwd);
System.out.println("Connexion effective");
Statement myStmt = null;
ResultSet myRs = null;
myStmt = conn.createStatement();
myRs = myStmt.executeQuery("SELECT * FROM testGeo");
while (myRs.next()) {
System.out.println(myRs.getString("shape"));
}
} catch (Exception e) {
e.printStackTrace();
}
Ecco le istruzioni DDL utilizzate per creare la tabella testGeo e alcuni dati di test.
CREATE TABLE testGeo (
GeoID NUMBER PRIMARY KEY,
name VARCHAR2(32),
shape SDO_GEOMETRY);
INSERT INTO testGeo VALUES(
1,
'cola_a',
SDO_GEOMETRY(
2003,
NULL,
NULL,
SDO_ELEM_INFO_ARRAY(1,1003,3),
SDO_ORDINATE_ARRAY(1,1, 5,7)
)
);
INSERT INTO testGeo VALUES(
2,
'cola_b',
SDO_GEOMETRY(
2003,
NULL,
NULL,
SDO_ELEM_INFO_ARRAY(1,1003,3),
SDO_ORDINATE_ARRAY(2,1, 6,7)
)
);
INSERT INTO testGeo VALUES(
3,
'cola_c',
SDO_GEOMETRY(
2003,
NULL,
NULL,
SDO_ELEM_INFO_ARRAY(1,1003,3),
SDO_ORDINATE_ARRAY(1,1, 9,9)
)
);
È possibile fornire le istruzioni DDL utilizzate per creare la tabella 'testGeo' e alcuni dati di test. – MT0
Possibile duplicato di http://stackoverflow.com/questions/7204200/how-to-retrieve-sdo-geometry-from-database-using-jdbc –