2014-11-04 1 views
5

я использовал Oracle 11g и попытаться создать пространственную базу данных, я просто скопировал образец код из oracle document , но когда дело доходит до обновления части метаданных, он дал дубликат ошибка ввода, и я попытался delete from user_sdo_geom_metadata, и он didnot дать какую-либо ошибку, а затем попытался вставить снова, все еще получил дубликат ошибки ввода. Я также попробовал select * from user_sdo_geom_metadata, но ничего не получил. у кого-нибудь есть идея, почему? благодаряне может обновить USER_SDO_GEOM_METADATA при создании пространственной базы данных в Oracle

образца код: причина

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

Чтобы быть уверенным, что делает следующее шоу?

SELECT * FROM USER_SDO_GEOM_METADATA; 

Названия объектов в словарных представлениях хранятся в верхнем регистре. Так что если вы хотите, чтобы удалить существующие записи из пространственных метаданных вы должны сделать это (обратите внимание на uppper случай имя таблицы):

DELETE FROM USER_SDO_GEOM_METADATA WHERE TABLE_NAME = 'COLA_MARKETS'; 
COMMIT; 
+0

ВЫБРАТЬ РЕЗУЛЬТАТ НИЧЕГО, 0 РЯДЫ SELECTED, И УДАЛЕНИЕ ТАКЖЕ ПОКАЗЫВАЕТ 0 ROWS DELETED, НО КОГДА Я ПОПРОСИ, ЧТОБЫ ВСТАВИТЬ СНОВА ЭТО ДАЕТ ОШИБКУ DUPLICATE: – user2810081

+0

* Причина. Для данной таблицы и столбца двоичные записи для позиции USER_SDO_GEOM_METADATA. * Действие: Проверьте правильность названий столбцов таблицы и геометрии . В таблице должно быть только одна запись в таблице, геометрия в паре USER_SDO_GEOM_METADATA. – user2810081

+0

Я обнаружил, что проблема в пользователе «MDSYS» есть таблица SDO_GEOM_METADATA и представление USER_SDO_GEOM_METADATA, я понимаю, что когда я вставляю в USER_SDO_GEOM_METADATA, данные должны храниться в представлении, но в моих обстоятельствах данные хранятся в таблица, а не вид, я не знаю, почему – user2810081

Смежные вопросы