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 雛形






