こんにちは私は2番目の表は、最初のと全く同じなので、私はそれを作成した2つのテーブルORA-01732:トリガーと組合ビューのこのビューのデータ操作オペレーション法的ない
CREATE TABLE "LCM_001"."LCM_BDT$ACT"
( "ID" NUMBER(*,0) NOT NULL ENABLE,
"SHORTDESCRIPTION" VARCHAR2(25 CHAR),
"LONGDESCRIPTION" VARCHAR2(500 BYTE),
"VALIDFROM" TIMESTAMP (6) WITH LOCAL TIME ZONE,
"VALIDTO" TIMESTAMP (6) WITH LOCAL TIME ZONE,
"VERSION" NUMBER(*,0) NOT NULL ENABLE
)
を作成「
create table LCM_BDT$HIST as select * from LCM_BDT$ACT where 1=0;
は、その後、私はその後、私はWR
select * from LCM_BDT$ACT
Union
select * from LCM_BDT$HIST
ビューを作成しました代わりに、トリガー
create or replace TRIGGER LCM_BDT_DML
instead of insert
on LCM_BDT
-- for each row
declare
vAct LCM_BDT$ACT%rowtype;
vHist LCM_BDT$HIST%rowtype;
begin
IF INSERTING THEN
select BDT_SEQ.nextval into vAct.id from dual;
vAct.SHORTDESCRIPTION := :new.SHORTDESCRIPTION;
vAct.LONGDESCRIPTION := :new.LONGDESCRIPTION;
vAct.VALIDFROM := sysdate;
vAct.VALIDTO := TO_TIMESTAMP('31.12.3999','DD.MM.YYYY');
vAct.Version := 1;
Insert into LCM_BDT$ACT values vAct;
END IF;
IF UPDATING THEN
-- vHist.ID := :old.ID;
-- vHist.SHORTDESCRIPTION := :old.SHORTDESCRIPTION;
-- vHist.LONGDESCRIPTION := :old.LONGDESCRIPTION;
-- vHist.VALIDFROM := :old.VALIDFROM;
-- vHist.VALIDTO := sysdate;
-- vHist.VERSION := :old.Version;
--
-- Insert into LCM_BDT$ACT values vAct;
-- -- new record
-- UPDATE LCM_BDT$HIST set
-- vAct.SHORTDESCRIPTION := :new.SHORTDESCRIPTION;
-- vAct.LONGDESCRIPTION := :new.LONGDESCRIPTION;
-- vAct.VALIDFROM := sysdate;
-- vAct.VALIDTO := TO_TIMESTAMP('31.12.3999','DD.MM.YYYY');
-- vAct.Version := :old.Version +1;
-- Insert into LCM_BDT$HIST values vHist;
delete from LCM_BDT where id = :old.ID;
END IF;
END LCM_BDT_DML;
問題のOTEのAAは、私はなかれSQLエラーを得たことである:
SQL-Fehler:ORA-01732:このビュー 01732. 00000上のデータ操作オペレーション法的ません - "データ操作操作はこのビューでは正しくありません" *原因:
*処置:
いずれかの提案がありますか?
は
このエラーの原因となるコードを投稿してくださいたぶん更新。? – Aleksej