Oracleでのセッションやプロセス数には上限があり、それを超えてしまうとデータベースにアクセス出来ずに予期せぬエラー(ORA-12519)が発生するなどの不具合が発生してしまいます。
Oracleで最大プロセス数や最大セッション数は初期化パラメータを管理しているSPFILEに定義されています。変更前にSPFILEのバックアップを取得しておくのをオススメします。
SPFILEの配置場所
Oracle DB 18cの場合の例です。
- 配置位置:[ORACLE_HOME]/database/SPFILE[ORACLE_SID].ORA
(例)C:\ORACLE\WINDOWS.X64_180000_db_home\database\SPFILEORCL.ORA
最大プロセス数、最大セッション数の変更方法
- 最初に「V$SYSTEM_PARAMETER」から現在の最大プロセス数と最大セッション数の設定値を確認します。「V$SYSTEM_PARAMETER」はインスタンスに現在有効になっている初期化パラメータ情報を示します。
|
SELECT NAME, VALUE FROM V$SYSTEM_PARAMETER WHERE NAME IN('processes', 'sessions'); |
- 次にALETER文でプロセス数の上限を変更します。
|
ALTER SYSTEM SET PROCESSES = 1000 SCOPE=SPFILE; |
- SPFILEの変更はOracleを再起動しないと適用されないため、Oracle DBを再起動します。
詳細は「Oracle Database(Oracleサーバ)の再起動(停止・起動)手順」参照
- 再度プロセス数とセッション数を確認すると上限が変更されているのが確認出来ます。セッション数は明示的に変更しなくてもプロセス数の変更に比例して上限が増えます。
|
SELECT NAME, VALUE FROM V$SYSTEM_PARAMETER WHERE NAME IN('processes', 'sessions'); |
Excelで本日の日付を表示するにはTODAY関数を使用すれば簡単に表示出来ます。
TODAY関数はパソコンの内部時計から現在日付を取得して表示する関数となります。
TODAY関数を使用して本日の日付を表示する例
・以下の例ではB2セルへ「=TODAY()」を入力して本日の日付を表示しています。
SQLに慣れてない頃だとnullを判定する際は「xx = null」などと書いてしまいがちですが、SQLでNULLを判定するには「xx is null」 or 「xx is not null」と記載します。
使用例
サンプルテーブル
「GOODS」
NULLのデータを抽出する例
クエリー(SQL)
|
SELECT * FROM GOODS g WHERE GOODS_CODE IS NULL; |
実行結果
NULL以外のデータを抽出する例
クエリー(SQL)
|
SELECT * FROM GOODS g WHERE GOODS_CODE IS NOT NULL; |
実行結果
SQLではSELECT時などにCASE文を入れる事で「IF-THEN-ELSE式」を記載することも出来ます。
使用例
サンプルテーブル
「GOODS」
クエリー(SQL)
- 以下の例ではCASE文でGOODS_CODEが特定の値と一致した場合、NAME列に文字列を付与してTEST列として出力しています。
|
SELECT NAME, GOODS_CODE, (CASE GOODS_CODE WHEN 101 THEN '【PC】' || NAME WHEN 201 THEN '【DESK】' || NAME ELSE '【OTHER】' || NAME END) test FROM GOODS g; |
出力結果
Excelで順位を求めるにはRANK関数を使用することで可能となります。
RANK関数は「=RANK(数値, 参照, [順序])」の書式で入力します。
第3引数の順序には0(降順で並び替えて数値の大きい方から数えた順位) or 1(昇順で並び替えて数値の大きい方から数えた順位)を指定してます。省略した場合は降順での順位が表示されます。
RANK関数を使用して順位付けする例
- 以下の例ではC2セルの書式へ「=RANK(B2,B$2:B$5,1)」を入力しています。
「駑馬十駕」 IT系情報を中心に調べた事をコツコツ綴っています。