PL/SQL学習日記 サンプルコードの謎を解け!

こんなコードを書きました。

ある本に掲載されていたサンプルコードなのですが、何も表示されない

状態です。

 

--

DECLARE
v_emp emp%ROWTYPE;
CURSOR c1 IS
SELECT
*
FROM
emp
WHERE
empno = 10;

BEGIN
OPEN c1;
LOOP
FETCH c1 INTO v_emp;
EXIT WHEN c1%NOTFOUND;
DBMS_OUTPUT.PUT_LINE('DEPTNO : '|| v_emp.deptno
|| ' EMPNO : '|| v_emp.empno
|| ' ENAME : '|| v_emp.ename
|| ' JOB : '|| v_emp.job);
END LOOP;
CLOSE c1;
END;

--

解答とも相違なし。

元のempにも該当データがあることが確認できます。

コンパイル上のエラーは、ないので、構文は問題なさそう。

 

考えられるのは、構文の順序。

LOOP文もそのままEXITされている可能性もあります。

 

いろいろ考えてみよう。それも学習の一環だ。