我正在使用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;并使用java程序使用executeUpdate()插入这些值
现在我使用以下命令查询oracle数据库:
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子句的语句没有出现行。有什么问题,请帮帮忙
发布于 2013-03-22 06:12:12
您的Java应用程序似乎插入了带有前导空格的数据。在DUMP输出中,您将看到每个数据元素的长度是4,第一个字节是32,它映射到ASCII charcter set中的一个空格。
您应该能够通过添加一个空格来查询数据
SELECT *
FROM building
WHERE building_name = ' SSL'或者,您可以修改数据以删除前导空格,并使用现有查询。
UPDATE building
SET building_name = TRIM(building_name);假设您这样做了,您还需要修改您的Java应用程序,使它在将来不会插入前导空格。
https://stackoverflow.com/questions/15558786
复制相似问题