- INTO 절 + 변수 (반드시)


  - 반드시 결과 하나만 리턴

: 반환되는 결과가 없거나 두 개 이상이면 에러 발생

 --> 예외(exception): NO_DATA_FOUND, TOO_MANY_ROWS


==> 극복하려면 1) cursor

      2) loop : basic, while, for

          + composite data type (associative array (INDEX BY table),

                                                 nested table,

                                                 varray)

3) 예외처리


declare

 v_ename varchar2(30);

 v_sal   number;

begin

 select ename, sal into v_ename, v_sal

 from emp

 where empno = 7788;


 p(v_ename || ' 사원의 급여는 ' || v_sal || '입니다.');

end;

/

   ------------------------------


declare

 v_ename varchar2(30);

 v_sal   number;

begin

 select ename, sal into v_ename, v_sal

 from emp

 where empno = 4456;


 p(v_ename || ' 사원의 급여는 ' || v_sal || '입니다.');

end;

/

--> ORA-01403: 데이터를 찾을 수 없습니다. (NO_DATA_FOUND)

   ------------------------------


declare

 v_ename varchar2(30);

 v_sal   number;

begin

 select ename, sal into v_ename, v_sal

 from emp;


 p(v_ename || ' 사원의 급여는 ' || v_sal || '입니다.');

end;

/

--> ORA-01422: 실제 인출은 요구된 것보다 많은 수의 행을 추출합니다 (TOO_MANY_ROWS)


+ Recent posts