oracle sql:从更多现有表中插入空间数据

时间:2011-12-06 10:33:56

标签: sql oracle insert

我创建了一个表格umriss,我填充了数据,但仍需要插入现有表格中的几何数据(usrdemo.glets_1850usrdemo.glets_1973,...)。这有什么作用?

umriss是一个“弱实体”,并引用了表gletscherstandglst_id)和gletschergletscher_id

create table umriss
(
    umr_nr number (4) not null,
    umr_datum date,
    GLST_ID number (4) not null,
    shape mdsys.sdo_geometry,
    GLETSCHER_ID number (3) not null,
    se_anno_cad_data blob
);

alter table umriss
add constraint umriss_glst_pk
primary key (umr_nr, GLST_ID, GLETSCHER_ID);

ALTER TABLE umriss 
ADD CONSTRAINT umriss_gletscherstand_fk 
FOREIGN KEY (GLST_ID, GLETSCHER_ID) 
REFERENCES GLETSCHERSTAND(GLST_ID, GLETSCHER_ID);

我手动插入了属性umr_nrumr_datumglst_idgletscher_id的数据。从umr_nr可以看到有3种形状,我现在想要添加usrdemo_glets_1850的空间数据,其中包含3个形状和属性:objectid(= umr_nr in表格umriss),shapese_anno_cad_data

我试过了......

INSERT INTO umriss u
(u.shape, u.se_anno_cad_data) 
SELECT usrdemo.glets_1850.shape, usrdemo.glets_1850.se_anno_cad_data
FROM usrdemo.glets_1850;
  

...并收到消息:Ora-01400 - 无法将NULL插入...“umriss”。“umr_nr”

这是如何运作的?

1 个答案:

答案 0 :(得分:0)

您已尝试在表umriss中插入新记录,而未设置主键列umr_nr的值。

如果我已正确理解,您已经将记录手动插入表umriss,现在您需要做的只是添加附加列,然后您应该使用UPDATE