5

我正在使用 oracle 11g 并尝试创建一个空间数据库,我只是从oracle 文档中复制了示例代码, 但是在更新元数据部分时,它给出了重复输入错误,我尝试delete from user_sdo_geom_metadata了它并没有给出任何错误,然后尝试再次插入,仍然出现重复输入错误。我也尝试过select * from user_sdo_geom_metadata,但一无所获。有人知道为什么吗?谢谢

示例代码:

CREATE TABLE cola_markets (
mkt_id NUMBER PRIMARY KEY,
name VARCHAR2(32),
shape SDO_GEOMETRY);

INSERT INTO cola_markets VALUES(
1,
'cola_a',
SDO_GEOMETRY(
  2003,  -- two-dimensional polygon
  NULL,
  NULL,
  SDO_ELEM_INFO_ARRAY(1,1003,3), -- one rectangle (1003 = exterior)
  SDO_ORDINATE_ARRAY(1,1, 5,7) -- only 2 points needed to
      -- define rectangle (lower left and upper right) with
      -- Cartesian-coordinate data
));

INSERT INTO user_sdo_geom_metadata
(TABLE_NAME,
 COLUMN_NAME,
 DIMINFO,
 SRID)
VALUES (
'cola_markets',
'shape',
SDO_DIM_ARRAY(   -- 20X20 grid
SDO_DIM_ELEMENT('X', 0, 20, 0.005),
SDO_DIM_ELEMENT('Y', 0, 20, 0.005)
 ),
NULL   -- SRID
);

错误原因:user_sdo_geom_metadata 视图中的给定表和列值对存在重复条目。

4

1 回答 1

4

可以肯定的是,以下显示了什么?

SELECT * FROM USER_SDO_GEOM_METADATA; 

字典视图中的对象名称以大写形式存储。因此,如果您想从空间元数据中删除现有条目,您需要这样做(注意大写表名):

DELETE FROM USER_SDO_GEOM_METADATA WHERE TABLE_NAME = 'COLA_MARKETS';
COMMIT;
于 2014-11-04T20:00:29.157 回答