備忘録的なblog
ラベル
Oracle
の投稿を表示しています。
すべての投稿を表示
ラベル
Oracle
の投稿を表示しています。
すべての投稿を表示
2017年10月14日土曜日
[Oracle]データベースバッファキャッシュを明示的に破棄してみる
›
データベースバッファキャッシュは下のSQLで明示的に破棄できる。 alter system flush buffer_cache; 破棄されたことを確認する 破棄前の統計情報 SQL> select * from person where id = 1; Elap...
2016年5月28日土曜日
[Oracle]アプリケーションコンテキストの作成
›
アプリケーションコンテキストにアプリ固有の情報を格納する方法 ネームスペースの作成 create context を使用して、ネームスペースを作成する。 ネームスペース作成時には、名前と値を管理するためのPL/SQL(プロシージャやパッケージ)をセットで指定する。 ※...
2016年5月27日金曜日
[Oracle]DBMS_SPACE.SPACE_USAGEを使ってブロックの使用量を調べる
›
このPL/SQLを実行すると結果が出力される。 PL/SQL set serveroutput on declare segment_owner varchar2(30) := '&owner'; segment_name varchar2(...
2016年5月21日土曜日
[Oracle]セキュアアプリケーションロール
›
セキュアアプリケーションロールを使うと、ロール作成時に指定したPL/SQLからのみそのロールを有効化することができるようになる。 また、ロールを有効化する直前に、PL/SQLのコード内でセキュリティ要件を満たしているかのチェックができるメリットがある。 セキュアアプリケーシ...
2016年5月10日火曜日
[Oracle]ユーザのパスワードを強制的に有効期限切れにする
›
ユーザのパスワードを有効期限切れにすることで、次回のログイン時にパスワードの変更を強制できるようになる。 パスワードを有効期限切れにするには、 alter user を使用するのでALTER USERシステム権限を持っているユーザで行う必要がある。 例 下のalter u...
2016年4月21日木曜日
[Oracle]パスワードの複雑度を検証する
›
パスワードの複雑度の検証を行うには、デフォルト(ユーザ)プロファイルのPASSWORD_VERIFY_FUNCTIONに検証を行うファンクションを設定する。 デフォルトでは、何も設定されていないので、簡単なパスワードも普通に使える状態になっている。(例えばアカウント名と同じパス...
2015年12月8日火曜日
DBMS_XPLAN.DISPLAY_CURSORを使って最近実行したSQL文のアクセスプランを取得
›
マニュアルによると、「DISPLAY_CURSORファンクションはカーソル・キャッシュにロードされている任意のカーソルの実行計画を表示します」とあるので、 実行されてからあまり時間がたっていないSQLであれば簡単にアクセスプランが見れる。 DISPLAY_CURSORは、デ...
2015年11月6日金曜日
[Oracle]DDL_LOCK_TIMEOUTでDDLのロックタイムアウトの待機時間を設定する
›
Oracle11gからは、DMLでロックされているレコードがあるテーブルに対するDDL文のロックタイムアウトの待機時間が設定できる。 設定がない場合(デフォルトの動作は)、nowaitなのでロックされているレコードがあるテーブルに対するDDLは即タイムアウトする。 発生する...
2015年11月1日日曜日
[Oracle]パスワードの大文字小文字の区別の設定
›
初期化パラメータの sec_case_sensitive_logon で大文字、小文字を区別するか設定する事ができる。 この値が、 true の場合は大文字と小文字が区別されるようになる。 設定値の確認 show parametersで確認できる。 SQL> sh...
2015年10月19日月曜日
Oracleのバーチャルインデックス
›
バーチャルインデックスを使うと、ディスクスペースや作成時間、他のアプリケーション(セッション)を 気にせずにインデックス追加時のアクセスプランなどを確認することができる。 テーブル定義 SQL> desc person 名前 ...
2015年6月28日日曜日
[Oracle12c]SQL*Loaderのエクスプレス・モード
›
Oracle12CからはSQL*Loaderのエクスプレス・モードを使用してコントロールファイルを作らずにデータをロードすることができるようです。 この機能は、表の列がすべて文字列、数値または日付型で、入力ファイルにデリミタ付きの文字列データが含まれている場合(例えばCSVファ...
2015年6月24日水曜日
SQL*Loaderでインプットファイルの論理行番号をテーブルに格納する
›
SQL*Loaderでデータロード時に、ファイルの論理レコード番号をテーブルに格納したい場合には、RECNUMパラメータを使用する。 RECNUMを使用するとスキップしたレコードや不良レコード、破棄レコードも1レコードとしてカウントされる。 ロード先のテーブル定義 名前 ...
2015年5月9日土曜日
[Oracle12C]拡張データ型でVARCHAR2やRAWの最大長をより大きい値にする
›
Oracle12cからの新機能の拡張データ型を使用すると、 VARCHAR2 、 NVARCHAR2 、 RAW の最大サイズが32,767バイトまで指定可能となります。 ※以前のバージョンでは、文字列(VARCHAR2、NVARCHAR2)は4000、RAWは2000が最大...
2015年1月7日水曜日
OracleでJDBC経由でレコード追加後にROWIDを取得する
›
OracleのJDBCドライバで、Statement生成時にStatement.RETURN_GENERATED_KEYSフラグを指定している場合、自動生成キーは追加されたレコードのROWIDが返されます。 何が返されるかわからなかったので、試してみたらROWIDが取得出来た...
2013年11月17日日曜日
[oracle12c]offsetを指定した上位n件の取得
›
Oracle12cの変更点のSELECT機能の強化に、下の記述がありました。 この機能を使うと、検索結果から指定した範囲のデータをねらって取得でき非常に便利だと思います。 ※昔はROWNUM擬似列と副問い合わせ使って頑張って同じようなことをした記憶があります。 上位N番ま...
2013年11月10日日曜日
[Oracle12c]子表を再帰的に切り捨てできるように
›
Oracle12Cでは、TRUNCATE文に「CASCADE」句をつけることで、子表(孫も含む)のテーブルも含めて切り捨て出来るようになる。 小表も含めて切り捨てる方法 参照整合性制約を作成する際に「ON DELETE CASCADE」を指定する。 例 ALTER TAB...
2013年10月14日月曜日
[Oracle12c]auto incrementみたいな新機能
›
Oracle12cでは、auto incrementっぽいカラムを定義できるようなので試してみた。 auto incrementっぽいカラムを定義するには、下のSQLのように「generated as identity」を指定する。 -- 常に生成した値を設定する(明示的に...
2013年10月13日日曜日
[Oracle12c]defaultに指定できるようになったon null句
›
Oracle12cからは、default区に「on null」が指定できるようになったようだ。 このon nullは、insert文で挿入しようとしている値がnullの場合に、指定した値を挿入してくれます。 ※defaultの場合は、insertで指定されていない場合のみ値...
2013年6月7日金曜日
PL/SQLが依存しているオブジェクトを確認する方法
›
PL/SQLプログラムの依存しているオブジェクトを確認する方法。 依存オブジェクトの確認は、USER_DEPENDENCIES(ALL_DEPENDENCIESやDBA_DEPENDENCIES)ビューで行える。 主なカラム NAME オブジェクトの名前 ...
2013年5月12日日曜日
[Oracle]DATE型の計算
›
日付の加算/減算 NUMBER値を加算(減算)しての日付計算。 -- 現在日時の1日後 select sysdate + 1 from dual; -- 2013/05/11の1日前 select to_date('2013-05-11') - 1 from ...
›
ホーム
ウェブ バージョンを表示