« トリガーカスケード制限 #2 | トップページ | 300,000突破 »

2008年9月 7日 (日)

トリガーカスケード制限 #3

前回まではLinux(32bit)環境(CentOS5)だったが気になったのでWindows XP Professional (32bit)でも試してみた。

結果を先に書くがLinux(32bit)と同じくトリガーカスケードの最大値は49となっている。ついでに調べたところOracle10g for MacOS X Serverでも同じであった。
Oracleのトリガーカスケードの最大値が32という制限値が正しい?!としても私が普段利用するプラットフォームでは49で正解のようだ。

9

以下、Windows XP Professional(32bit)上のログ

SCOTT> 
SCOTT>
SCOTT> create table master(seq# number);

表が作成されました。

SCOTT> create sequence master_seq
2 start with 1
3 increment by 1
4 nocache
5 noorder;

順序が作成されました。

SCOTT>
SCOTT> create or replace trigger ins_cascade_test
2 after insert on master
3 begin
4 insert into master values(master_seq.nextval);
5 end;
6 /

トリガーが作成されました。

SCOTT>
SCOTT> select last_number
2 from user_sequences
3 where sequence_name = 'MASTER_SEQ';

LAST_NUMBER
-----------
1

SCOTT>
SCOTT> insert into master values(-100);
insert into master values(-100)
*
行1でエラーが発生しました。:
ORA-00036: 再帰的SQLレベルの最大値(50)を超えました ORA-06512:
"SCOTT.INS_CASCADE_TEST", 行2
ORA-04088: トリガー'SCOTT.INS_CASCADE_TEST'の実行中にエラーが発生しました ORA-06512:
"SCOTT.INS_CASCADE_TEST", 行2
ORA-04088: トリガー'SCOTT.INS_CASCADE_TEST'の実行中にエラーが発生しました ORA-06512:
"SCOTT.INS_CASCADE_TEST", 行2
ORA-04088: トリガー'SCOTT.INS_CASCADE_TEST'の実行中にエラーが発生しました ORA-06512:
"SCOTT.INS_CASCADE_TEST", 行2
ORA-04088: トリガー'SCOTT.INS_CASCADE_TEST'の実行中にエラーが発生しました ORA-06512:
"SCOTT.INS_CASCADE_TEST", 行2
ORA-04088: トリガー'SCOTT.INS_CASCADE_TEST'の実行中にエラーが発生しました ORA-06512:
"SCOTT.INS_CASCADE_TEST", 行2
ORA-04088: トリガー'SCOTT.INS_CASCADE_TEST'の実行中にエラーが発生しました ORA-06512:
"SCOTT.INS_CASCADE_TEST", 行2
ORA-04088: トリガー'SCOTT.INS_CASCADE_TEST'の実行中にエラーが発生しました ORA-06512:


SCOTT>
SCOTT> select last_number
2 from user_sequences
3 where sequence_name = 'MASTER_SEQ';

LAST_NUMBER
-----------
51

SCOTT>


ところで半年振りに起動した自宅のWindowsマシンのコードレスキーボードが壊れたらしく、仕方ないのでRDCをダウンロードしてMacOSXから利用することに。。。。


7

|

トラックバック


この記事へのトラックバック一覧です: トリガーカスケード制限 #3:

コメント

コメントを書く