SELECT 〜 INTO は、カーソルを定義せずにデータを読みだす便利な方法ですが、対象データが where 条件で発見できなかった場合は例外が発生するので注意が必要です。 必ず、BEGIN 〜 EXCEPTION 〜 END; でブロックを作成して起こりうる例外処理に備える必要があります。( NULL 文は何もしない処理です ) 但し、起こりうる例外として NO_DATA_FOUND と TOO_MANY_ROWS が考えされますが、グループ用の記述をしている場合は、必ず行が返されてかつ1行の場合もあります。( 例 : GROUP BY の無い count関数 )
BEGIN SELECT 締日 ,締日区分 ,支払日 INTO WK_締日 ,WK_締日区分 ,WK_支払日 FROM 得意先マスタ WHERE 得意先コード = PM_TCODE; EXCEPTION WHEN NO_DATA_FOUND THEN NULL; WHEN TOO_MANY_ROWS THEN NULL; WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('例外発生:'||SQLCODE||':'||SQLERRM); END;
|
【Oracle : PL/SQLの最新記事】
- PL/SQL : 最も簡単な CSV 出力 の記述
- PL/SQL : Function と Procedure の簡単なサンプル
- Oracle : PL/SQL Function の使用方法
- Oracle : PL/SQL : 暗黙のカーソルとループブロックを使用した自動行挿入
- Oracle : PL/SQL : カーソルを使った一般的なループ処理を行うプロシージャ
- Oracle : PL/SQL : Function のサンプルと使い方
- PL/SQL : OUT タイプのパラメータを持つストアードプロシージャの処理
- PL/SQL : プロシージャの呼び出し
- PL/SQL : Function 雛形