PL/SQL 의 결과물 출력 설정
set serveroutput on
내부 영역과 외부 영역
DECLARE
v_sal NUMBER(7,2) := 60000;
v_comm NUMBER(7,2) := v_sal * .20;
v_message VARCHAR2(255):='eligible for commission';
BEGIN
DECLARE
v_sal NUMBER(7,2) := 50000;
v_comm NUMBER(7,2) := 0;
v_total_comp NUMBER(7,2) := v_sal+ v_comm;
BEGIN
v_message := 'CLERK not '||v_message;
v_comm := v_sal * .30;
dbms_output.put_line('Inner Message : ' || v_message);
--dbms_output.put_line('Inner total : ' || v_total_comp);
dbms_output.put_line('Inner comm : ' || v_comm);
END;
v_message := 'SALESMAN'||v_message;
dbms_output.put_line('outer Message : ' || v_message);
--dbms_output.put_line('outer total : ' || v_total_comp); --> 에러 외부에서 내부변수 사용불가
dbms_output.put_line('outer comm : ' || v_comm);
END;
/
예제1.
사원번호를 입력받아
사원번호, 사원이름, 부서이름을 출력하는 PL/SQL 을 작성하시오
declare
v_empid employees.employee_id%type := &empid;
v_empname employees.last_name%type;
v_deptname departments.department_name%type;
begin
select e.employee_id, e.last_name, d.department_name
into v_empid, v_empname, v_deptname
from employees e
join departments d on (e.department_id = d.department_id)
where employee_id = v_empid;
dbms_output.put_line('empid : ' || v_empid);
dbms_output.put_line('empname : ' || v_empname);
dbms_output.put_line('deptname : ' || v_deptname);
end;
/
예제2.
사원번호를 입력 (치환변수 사용 &)할 경우
사원이름, 급여, 연봉 → (급여 * 12 + (nvl(급여, 0) * nvl(커미션, 0) * 12))
을 출력하는 PL/SQL 을 작성하시오.