読者です 読者をやめる 読者になる 読者になる

雑記帳

趣味や仕事の備忘録などを気分で書いてみます

Oracle 演算子の優先順位

演算子の優先順位のメモ。
()を使用した場合、優先順位を変更できる。

優先順位 演算子
1 算術演算子(*,/,+,-)
2 連結演算子(||)
3 比較演算子(=,>,>=,<,<=)
4 IN演算子,LIKE演算子,IS NULL演算子
5 BETWEEN演算子
6 等しくない(<>,!=,^=)
7 NOT演算子
8 AND演算子
9 OR演算子

Oracle 代替引用符演算子

文字リテラルや日付リテラルを使用する場合、「'」で囲む必要があるが、文字リテラル内で「'」を使用したい場合、代替引用符演算子(q)を使用する。
SQL内で以下の文字を引用符デリミタとして、指定できる。

  • 任意のシングルバイト文字やダブルバイト文字
  • 、{}、()、の各組合せ
q'引用符デリミタ … 引用符デリミタ'

Oracle SQLの分類

SQLは以下に分類される。

DML

表内のデータを直接操作する。

  • SELECT文
  • INSERT文
  • UPDATE文
  • DELETE文
  • MERGE文

DDL

表などのデータベースオブジェクトを作成・変更・削除する。

  • CREATE文
  • ALTER文
  • DROP文
  • RENAME文
  • TRUNCATE文
  • COMMENT文

DCL

データベースに対する権限を付与したり、取り消したりする。

  • GRANT文
  • REVOKE文

トランザクション制御

トランザクションを制御する。

  • COMMENT文
  • ROLLBACK文
  • SAVEPOINT文

Oracle UNDO表領域の管理

 開発環境では各表領域のサイズを小さくしていたため、大量データの処理を行った際にDML文が失敗する現象が発生しました。
UNDO表領域についてまとめてみました。

UNDO表領域とは

UNDO情報を格納する表領域。
データベースには複数のUNDO表領域を作成できるが、1インスタンスに対して、アクティブにできるUNDO表領域は1つのみ。

UNDO表領域が小さい場合に起こること

  • DML文の失敗

 新しいトランザクションに対応するUNDOデータを格納する領域が不足することによるDML文の失敗

  • スナップショットが古すぎますのエラー

 UNDOデータ不足により、読み取り一貫性が維持できないことによるエラー

UNDO表領域の管理の観点

トランザクションロールバックやフラッシュバック機能を使用するためには、UNDO表領域を十分な大きさに設定したうえで、次の観点で管理を行う。

  • UNDO保存期間を設定する
  • AUTOEXTEND ONの場合は使用領域が過多にならないように注意する
  • UNDO表領域を固定サイズにする
  • UNDOデータの不足による「スナップショットが古すぎます」のエラーを回避する

UNDO表領域の拡張

ALTER DATABASE文を使用します。

ALTER DATABASE ファイルパス RESIZE 変更後のファイルサイズ

Java 例外とエラーについて

例外とエラーについてよく理解できていなかったので整理。

例外

例外は検査例外と非検査例外に分類される。

検査例外

try-catch-finallyブロックによる例外処理または、throwsキーワードによる例外処理が必須。
RuntimeExceptionクラス以外のExceptionのサブクラスが対象。

非検査例外

例外処理は任意。
RuntimeExceptionクラスおよびそのサブクラスが対象。
復旧可能。

エラー

メモリ不足などjava実行環境で発生する継続して処理続行が不可能な致命的なエラー。
Errorクラスとそのサブクラスが対象。

Java 配列の宣言とインスタンス生成

配列をあまり使わないので、メモ。

配列インスタンスの生成・初期化

初期化演算子を使用して参照の代入を行う

int[] array = {1,2};

newを使用する場合は以下のように記述する。

int[] array = new int[]{1,2};

下記のように大かっこ[]の中に要素数を記述した場合はコンパイルエラーとなる。

int[] array = new int[2]{1,2};

配列の要素数を指定する場合、以下のように記述する。

int[] array = new int[2];

多次元配列

int[][] array = {{1,2},{3,4}};

XML XML宣言の記述

XML宣言では、XML文書であることを宣言する。

<?xml version="XML規格のバージョン番号"
      encoding="文字エンコーディング名"
      standalone="外部サブセット参照の有無{yes|no}" ?>

version

XML規格のバージョン番号を記載する。
必須。

encoding

どのエンコーディングを使用するかを指定する。
省略した場合、UTF-8となる。

standalone

XML文書がほかの外部ファイルを参照するのかを指定する。
外部ファイルを参照する場合は"no"を指定する。
参照しない場合は"yes"を指定する。
省略した場合、"no"となる。