- 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)
'Oracle > PL/SQL' 카테고리의 다른 글
15일차 # 4-15: Update in PL/SQL (0) | 2012.04.24 |
---|---|
15일차 # 4-12: Name Precedence (0) | 2012.04.24 |
15일차 # 4-3: SQL Statements in PL/SQL (0) | 2012.04.24 |
15일차 # 3-20: Make code maintenance easier (0) | 2012.04.24 |
15일차 # 3-18: PL/SQL의 연산자 (0) | 2012.04.24 |