2015年11月6日金曜日

[Oracle]DDL_LOCK_TIMEOUTでDDLのロックタイムアウトの待機時間を設定する

Oracle11gからは、DMLでロックされているレコードがあるテーブルに対するDDL文のロックタイムアウトの待機時間が設定できる。

設定がない場合(デフォルトの動作は)、nowaitなのでロックされているレコードがあるテーブルに対するDDLは即タイムアウトする。
発生するエラーは、こんな感じ。
ERROR at line 1:
ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired

設定値の変更は、DDL_LOCK_TIMEOUTパラメータで行う。例えば、10秒を設定したい場合には、以下の様なalter sessionを実行する。
alter session set DDL_LOCK_TIMEOUT=10;

2015年11月1日日曜日

[Oracle]パスワードの大文字小文字の区別の設定

初期化パラメータのsec_case_sensitive_logonで大文字、小文字を区別するか設定する事ができる。

この値が、trueの場合は大文字と小文字が区別されるようになる。

設定値の確認

show parametersで確認できる。
SQL> sho parameters sec_case_sensitive_logon

NAME         TYPE  VALUE
------------------------------------ ----------- ------------------------------
sec_case_sensitive_logon      boolean  FALSE

設定値の変更

alter systemを使用して変更する。

alter system set sec_case_sensitive_logon = false

注意点

Oracle12cのセキュリティ・ガイドによると、この機能は非推奨で下位互換のためだけに残されているようです。