13_PL_SQL_2.SQL
SET SERVEROUTPUT ON;
/
DECLARE
NO NUMBER :=1;
BEGIN
LOOP
DBMS_OUTPUT.PUT_LINE(NO);
NO := NO +1;
IF NO > 5 THEN
EXIT;
END IF;
END LOOP;
END;
/
/
DECLARE
BEGIN
DBMS_OUTPUT.PUT_LINE('- FOR LOOP -');
FOR N IN 1..5 LOOP
DBMS_OUTPUT.PUT_LINE(N);
END LOOP;
END;
/
/
DECLARE
NO NUMBER :=1;
BEGIN
DBMS_OUTPUT.PUT_LINE('- WHILE LOOP -');
WHILE NO <= 5 LOOP
DBMS_OUTPUT.PUT_LINE(NO);
NO := NO + 1;
END LOOP;
END;
/
SELECT * FROM EMP;
/
DECLARE
VSAL EMP.SAL%TYPE;
VENAME EMP.ENAME%TYPE;
VCOMM EMP.COMM%TYPE;
BEGIN
SELECT SAL, ENAME, COMM
INTO VSAL, VENAME, VCOMM
FROM EMP
WHERE ENAME = 'SMITH';
DBMS_OUTPUT.PUT_LINE(VENAME || ' 의 연봉 : ' || (VSAL * 12+NVL(VCOMM,0)));
END;
/
/
DECLARE
N7 NUMBER :=7;
NO NUMBER :=1;
BEGIN
WHILE NO <=9 LOOP
DBMS_OUTPUT.PUT_LINE(N7 || ' * ' || NO || ' = ' || (NO*N7));
NO := NO +1;
END LOOP;
END;
/
SELECT * FROM DEPT;
/
DECLARE
VDNAME DEPT.DNAME%TYPE;
VLOC DEPT.LOC%TYPE;
BEGIN
FOR N IN 1..5 LOOP
SELECT DNAME, LOC
INTO VDNAME, VLOC
FROM DEPT
WHERE DEPTNO = N*10;
DBMS_OUTPUT.PUT_LINE('부서번호 : ' || N*10 ||' / 부서명 : ' || VDNAME || ' / 지역 ' || VLOC);
END LOOP;
END;
/