PL/SQLでレコード0件の場合
ちょっと悩み中です。もう少しシンプルにできないかな?と。
DECLARE
nID INTEGER;
BEGIN
SELECT 0 INTO nID FROM DUAL WHERE ROWNUM = 0;
END
;
上記を実行しようとすると、レコードがありませんので、
「ORA-01403: データが見つかりません。」とのエラーになります。
回避策として、
とすれば、レコードがある場合だけ実行される分岐となります。
DECLARE
nCount INTEGER;
nID INTEGER;
BEGIN
SELECT COUNT(*) INTO Count FROM DUAL WHERE ROWNUM = 0;
IF ( nCount > 0 ) THEN
SELECT 0 INTO nID FROM DUAL WHERE ROWNUM = 0;
END IF;
END
;
ただ、これだとカウントを数えるSQLとフィールドを変数に代入するSQL、同一のSQLをコーディングすることになります。なんか、シンプルな方法がないかなーと悩み中です。