Oracle PL/SQL
Oracleが開発したプログラミング言語。SQL に制御構造を加えたもの。ストアドプログラムとして Oracle サーバに格納しておくこともできる。
Advertisement
基本
- 演算子
使用できる演算子の種類 - ブロック構造
PL/SQLの構造 - 変数
変数の使用方法 - 属性参照
定義済みの属性を参照する - カーソル
カーソルの使用方法 - 制御構造
条件判定を行い、プログラムを制御する - 繰り返し
ループを使用する - 無条件分岐
任意の位置に処理を飛ばす - 特殊
null文 - コレクション
コレクションの利用方法 - コミット・ロールバック
読み取り一貫性 - 組み込み関数 – 文字列
文字列を操作する関数 - 組み込み関数 – 日時
日時を操作する関数 - 組み込み関数 – 型変換
型変換を行う関数 - 組み込み関数 – 数値関数
数値を操作する関数 - 組み込み関数 – その他の関数
その他の関数 - エラー処理
エラー処理のメカニズム - プロシージャ
プロシージャの作成方法 - ファンクション
ファンクションの作成方法 - 動的SQL
PL/SQLで動的SQLを使用する - トリガー
トリガーを利用する
パッケージ
- UTIL_FILE
ファイルの入出力を行う
TIPS
メモ
リンク
- OTN Japan – PL/SQLセンター(日本オラクル)
Oracle PL/SQL – ブロック構造
ブロック構造
PL/SQL の基本的な構造。
DECLARE
-- 宣言
BEGIN
-- 処理
EXCEPTION
-- 例外処理
END;
※ BEGIN のみ必須。
declareブロック
declare ブロックでは変数とカーソルの宣言を行う。
begin ブロック
実際の処理を記述する。データベースの検索、演算、レコードの挿入などを行う。
exception ブロック
begin ブロックで例外が発生した場合の処理を記述する。
Oracle PL/SQL – char と varchar2 の比較
比較
char型変数にその変数の最大長に満たない値を設定すると、足りない桁数分のスペースが自動的に設定される。
よって、内容が同じでも型の違う項目同士を比較するとマッチしないため、注意が必要。
よって、内容が同じでも型の違う項目同士を比較するとマッチしないため、注意が必要。
サンプルコード
declare
name1 char(10);
name2 varchar2(10);
begin
name1 := 'hello';
name2 := 'hello';
if name1 = name2 then
dbms_output.put_line('if');
else
dbms_output.put_line('else');
end if;
end;
実行結果
else
プロシージャからプロシージャを呼び出すときの引数項目などで、可変長の項目をcharで渡してしまっているミスなど、ありがちなので注意が必要。

