2016-05-09 6 views
0

原因がわからないため、Oracle SQL開発者のトリガー内のPL/SQLブロックが引き続き設定されているため、無作為な時間にヌル。私は、行を削除し、トリガを有効にし、トリガをコンパイルし、(ODAP.netを介して)行を挿入し、行を更新しました。トリガー内のPL/SQLブロックがNULLに設定される

私は答えを見つけるために最善を尽くしましたが、何も見つかりませんでした。どんなアイデアでも大いに感謝しています。

また、ここに投稿するかサーバーフォールトを送信するかはわかりませんでした。

トリガーは、こののバリエーションです:

create or replace TRIGGER basic_ticket_trg 

BEFORE INSERT ON basic_ticket 

FOR EACH ROW 

BEGIN 

    <<COLUMN_SEQUENCES>> 
    BEGIN 
    IF INSERTING AND :NEW.ID IS NULL THEN 
     SELECT basic_ticket_seq.NEXTVAL INTO :NEW.ID FROM SYS.DUAL; 
    END IF; 
    END COLUMN_SEQUENCES; 

END; 

if文は、それはのように見える終わるので、nullに設定取得し続けるものです場合:

create or replace TRIGGER basic_ticket_trg 

BEFORE INSERT ON basic_ticket 

FOR EACH ROW 

BEGIN 

    <<COLUMN_SEQUENCES>> 
    BEGIN 
    null; 
    END COLUMN_SEQUENCES; 

END; 
+0

あなたは正確に何を見ていますか?何が「nullに設定されていますか?トリガ定義が変更されていると言っていますか?つまり、 'all_source'を見るか、' dbms_matadata'を使って定義を取得すると、予期せず変更されましたか? –

+0

質問にトリガソースコードを追加できますか? – Carlo

+0

@AlexPooleが質問 – PointXIV

答えて

1

、私は完全にまだ100ないんだけどなぜそれが起こったのか確かめてください。しかし、見ている人にとっては、トリガが働くテーブルを更新したことが原因です。

0

"COLUMN_SEQUENCES"を削除してください。それを削除するだけで、すべてのことが完璧です。少なくとも私のために働いていました。私はあなたが削除する必要があるときにNULLにコードを消去するバグだと思う列を変更するか、名前を変更します。

関連する問題