【发布时间】:2016-02-02 11:12:09
【问题描述】:
我正在尝试使用 JDBC 显示在 Oracle 11g 数据库中创建的表中的行,问题是我无法使用以下代码获取类型为“SDO_GEOMETRY”的属性“SHAPE”的值,顺便说一下,当涉及到表的其他属性时,它可以正常工作:
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();
}
这里是用于创建 testGeo 表和一些测试数据的 DDL 语句。
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)
)
);
【问题讨论】:
-
能否提供用于创建
testGeo表的DDL语句和一些测试数据。