Oracle11g 查询空间数据库

Oracle11g 查询空间数据库,oracle11g,netbeans-7,Oracle11g,Netbeans 7,我正在使用ORACLE SQL DEVELOPER。 我已经创建了表 Create table building( building_ID varchar2(5) Primary Key, building_name Varchar2(50), shape MDSYS.SDO_GEOMETRY); INSERT INTO USER_SDO_GEOM_METADATA VALUES ( 'building', 'shape', SDO_DIM_ARRAY( -- 20X2

我正在使用ORACLE SQL DEVELOPER。 我已经创建了表

Create table building(
building_ID varchar2(5) Primary Key, 
building_name Varchar2(50),
shape MDSYS.SDO_GEOMETRY);

INSERT INTO USER_SDO_GEOM_METADATA 
  VALUES (
  'building',
  'shape',
  SDO_DIM_ARRAY(   -- 20X20 grid
    SDO_DIM_ELEMENT('X', 0, 100, 1),
    SDO_DIM_ELEMENT('Y', 0, 100, 1)
     ),
  NULL   -- SRID
);

CREATE INDEX building_index
   ON building(shape)
   INDEXTYPE IS MDSYS.SPATIAL_INDEX;
并使用executeUpdate()使用java程序插入值

现在我使用

select * from building;
显示所有行,则输出为-

但是当我查询oracle数据库时

SELECT building_ID
  FROM building 
  WHERE building_name = 'SSL'; OR

  SELECT c.shape.GET_GTYPE()
  FROM building c WHERE c.building_name = 'BHE';

或者类似地,带有where子句的语句不显示行。问题是什么请帮助

您的Java应用程序似乎插入了带前导空格的数据。在
DUMP
输出中,您将看到每个数据元素的长度是4,第一个字节是32,它映射到

您应该能够通过预加空格来查询数据

SELECT *
  FROM building
 WHERE building_name = ' SSL'
也可以修改数据以删除前导空格并使用现有查询

UPDATE building
   SET building_name = TRIM(building_name);

假设您这样做,您还需要修改Java应用程序,使其在将来不会插入前导空格。

如果
从building中选择building\u name,dump(building\u name)会得到什么?是否可能实际建筑名称的末尾有额外的空格,例如,您查询的输出片段-PSA Typ=1 Len=4:32,80,83,65 OHE Typ=1 Len=4:32,79,72,69 BHE Typ=1 Len=4:32,66,72,69,是的,我在建筑物名称前有一个空格。加上空白,我就得到了想要的结果。。非常感谢。但是有没有办法消除这个空白问题呢?