トリガーを作成する必要があります。すべてをコンパイルしますが、私のビューに何かを挿入したい場合は、エラーメッセージが表示されます。多分あなたは私を助けることができます。ORACLEトリガーではなく、ネストした表のビューに挿入する
SET DEFINE off;
CREATE OR REPLACE TRIGGER LieferantOV_trig
INSTEAD OF INSERT
ON LIEFERANT_OV
FOR EACH ROW
BEGIN
IF INSERTING THEN
INSERT INTO Lieferant (LiefNr, Name, Adresse)
VALUES(:new.LiefNr, :new.Name, ntTAdresse());
INSERT INTO TABLE (SELECT Adresse FROM Lieferant ) VALUES
(TAdresse(:new.Straße, :new.PLZ, :new.Ort));
END IF;
END;
INSERT INTO Lieferant_OV
VALUES(752443, 'Laepple Teublitz', 'Maxstr. 12', '93158', 'Teublitz');
ネストされた表については
CREATE OR REPLACE TYPE TAdresse AS OBJECT(
Straße VARCHAR2(50),
PLZ VARCHAR2(5),
Ort VARCHAR2(50)
);
CREATE TABLE Lieferant(
LiefNr number(6) PRIMARY KEY,
Name varchar2(20) NOT NULL
);
1.
CREATE OR REPLACE TYPE ntTAdresse AS TABLE OF TAdresse;
2.
ALTER TABLE Lieferant ADD Adresse ntTAdresse NESTED TABLE Adresse STORE AS TAdresseNT;
CREATE OR REPLACE VIEW Lieferant_OV (LiefNr, Name, Straße, PLZ, ORT)
AS SELECT k.LiefNr, k.Name, l.Straße, l.PLZ, l.Ort
FROM Lieferant k, table(k.Adresse) l;
あなたはどのようなエラーが出るん:あなたは、このいずれかを行うことができ、既存のLieferantにアドレスを追加するために
? – GurV
ちょっと、もう少しコードを追加しました。このエラーが発生しました:SQL-ERROR:ORA-04098:トリガー 'S74040.LIEFERANT_OV_TRIG'は有効ではありません。 04098. 00000 - "トリガー '%s。%s'は無効で、再検証に失敗しました" –
Doあなたは1つの行を挿入したいですか? – GurV