Я создал таблицу umriss
, которую я заполнил данными, и мне все еще нужно вставить данные геометрии из существующих таблиц (usrdemo.glets_1850
, usrdemo.glets_1973
, ...). Как это работает?
umriss
является «слабой сущностью» и имеет ссылки на таблицы gletscherstand
(glst_id
) и gletscher
(gletscher_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_nr
, umr_datum
, glst_id
и gletscher_id
. Как вы можете видеть из umr_nr
, есть 3 фигуры, и теперь я хочу добавить пространственные данные из usrdemo_glets_1850
, которые имеют 3 фигуры и атрибуты: objectid
(= umr_nr
в таблице umriss
), shape
и se_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"
Как это работает?