SQL은 SQL문의 결과를 PARSE/BIND/EXECUTE/FETCH 모든 절차를 거쳐 사용자에게 제공했다.
반면 PL/SQL은 일반적으로 해당 결과를 사용자에게 제공해 주지 않는다. 즉 PARSE/BIND/EXECUTE까지만 진행하여 ACTIVE SETㅇ늘 생성하지만, FETCH에 대해 자동으로 실행해 주지 않는다.
해당 fetch에 대한 기능을 우리는 into절을 통해 변수에 할당하여 사용자에게 제공할 수 있다.
받아올 변수의 타입을 직접 지정할 수 있지만 %type , %rowtype과 같은 암시적 커서의 속성을 이용해 받아올 수 있다.
DECLARE
v_id hr.employees.employee_id%type; -- 레코드 타입.
v_data hr.employees%rowtype; -- 스칼라 데이터타입
BEGIN
SELECT *
INTO v_data
FROM hr.employees
WHERE employee_id = 100;
SELECT employee_id
INTO v_id
FROM hr.employees
WHERE employee_id = 100;
dbms_output.put_line(v_id); -- 100
dbms_output.put_line(v_data.employee_id || v_data.last_name); - 100 이름
END;
/
바인드 변수도 사용할 수 있다.