2016-06-15 59 views
1

私は次のコードで、単純なトリガーを作成しようとしています -Oracleのトリガーの作成

CREATE OR REPLACE TRIGGER trg_menu_id BEFORE INSERT ON "menu" FOR EACH ROW 
BEGIN 
SELECT 
    menu_id_seq.NEXTVAL INTO : NEW.MENU_ID 
FROM 
    dual ; 
END ; 

をしかし、私は取得しています - [のErr] ORA-24344は:コンパイル・エラーと成功は 私は理解していません私が間違ってやっていること。

+0

NEWの前にコロンに注意してください。そこにはスペースがあってはいけません。また、あなたのテーブルは本当に小文字の "menu"という名前ですか? – micklesh

+0

私はまた、コロンの後にスペースを削除することによって試しました。しかし、同じ結果。はいテーブル名は小文字である –

+0

完全なエラー出力を投稿してください。実行:完全な出力を得るためにトリガー実行後にエラーを表示する – anudeepks

答えて

1

最後に私の問題は解決しました。フィールド名は小文字で、NEW.MENU_IDの代わりにNEW."menu_id"を使用しなければなりません。 新しいコードは -

CREATE OR REPLACE TRIGGER trg_menu_id BEFORE INSERT ON "menu" FOR EACH ROW 
BEGIN 
SELECT 
    menu_id_seq.NEXTVAL INTO :NEW."menu_id" 
FROM 
    dual ; 
END ; 
関連する問題