2011-12-06 23 views
0

私はデータで埋め込んだテーブルumrissを作成しましたが、既存のテーブル(usrdemo.glets_1850usrdemo.glets_1973、...)からジオメトリデータを挿入する必要があります。それはどのように機能するのですか?oracle sql:既存のテーブルから空間データを挿入

umrissは "弱いエンティティ" と私は手動で属性umr_nrumr_datumglst_idgletscher_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); 

テーブルgletscherstandglst_id)とgletschergletscher_id)への参照を有します。 umr_nrからわかるように、3つの図形があり、今度は​​の3つの図形と属性:objectid(= umr_nr:表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 - に... "umrissが" NULLを挿入することはできませんが

"umr_nr"

これはどのように機能しますか?

答えて

0

プライマリキー列umr_nrの値を設定せずに、テーブルumrissに新しいレコードを挿入しようとしました。

私が正しく理解している場合は、すでに手動でテーブルumrissにレコードを挿入していますが、追加する列を追加するだけで済みますので、代わりにUPDATEを使用してください。

関連する問題