首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查询空间数据库

查询空间数据库
EN

Stack Overflow用户
提问于 2013-03-22 05:44:48
回答 1查看 82关注 0票数 0

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

代码语言:javascript
复制
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;

并使用java程序使用executeUpdate()插入这些值

现在我使用以下命令查询oracle数据库:

代码语言:javascript
复制
select * from building;

并显示所有行,则输出为-

但是当我查询oracle数据库时

代码语言:javascript
复制
SELECT building_ID
  FROM building 
  WHERE building_name = 'SSL'; OR

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

或者类似的带有where子句的语句没有出现行。有什么问题,请帮帮忙

EN

回答 1

Stack Overflow用户

发布于 2013-03-22 06:12:12

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

您应该能够通过添加一个空格来查询数据

代码语言:javascript
复制
SELECT *
  FROM building
 WHERE building_name = ' SSL'

或者,您可以修改数据以删除前导空格,并使用现有查询。

代码语言:javascript
复制
UPDATE building
   SET building_name = TRIM(building_name);

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15558786

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档