Q.
[SQL] 예제 #3
yul_S2
2022. 12. 28. 12:36
반응형
1. 다음의 두줄을 주석문 처리하시오.
SQL 응용
본인이름
SET SERVEROUTPUT ON; DECLARE BEGIN DBMS_OUTPUT.PUT_LINE('SQL 응용'); DBMS_OUTPUT.PUT_LINE('본인이름'); END; / |
--SQL 응용 --본인이름 --PL/SQL 프로시저가 성공적으로 완료되었습니다. |
2. PL/SQL의 SELECT문으로 EMP데이블에서 TURNER의 사원번호, 이름, 부서번호를 조회하시오.
SET SERVEROUTPUT ON; DECLARE SONNO EMP.EMPNO%TYPE; SONNAME EMP.ENAME%TYPE; SONNDEPTNO EMP.DEPTNO%TYPE; BEGIN SELECT EMPNO, ENAME, DEPTNO INTO SONNO, SONNAME, SONNDEPTNO FROM EMP WHERE ENAME = 'TURNER'; DBMS_OUTPUT.PUT_LINE('사번 이름 부서번호'); DBMS_OUTPUT.PUT_LINE('-------------------------'); DBMS_OUTPUT.PUT_LINE(''||SONNO||' '||SONNAME||' '||SONNDEPTNO); END; |
/* 사번 이름 부서번호 ------------------------- 7844 TURNER 30 PL/SQL 프로시저가 성공적으로 완료되었습니다. */ |
3. PL/SQL의 다중 if..then..elsif..else문을 이용하여 TURNER의 사원번호, 이름, 부서번호, 부서명을 조회하시오.
DECLARE SONEMP EMP%ROWTYPE; SONDNAME VARCHAR2(14); BEGIN SELECT * INTO SONEMP FROM EMP WHERE ENAME = 'TURNER'; IF (SONEMP.DEPTNO = 10) THEN SONDNAME := 'ACCOUNTING'; ELSIF (SONEMP.DEPTNO = 20) THEN SONDNAME := 'CLERK'; ELSIF (SONEMP.DEPTNO = 30) THEN SONDNAME := 'SALES'; ELSIF (SONEMP.DEPTNO = 40) THEN SONDNAME := 'OPERATIONS'; END IF; DBMS_OUTPUT.PUT_LINE('사번 이름 부서번호 부서명'); DBMS_OUTPUT.PUT_LINE('------------------------------'); DBMS_OUTPUT.PUT_LINE(SONEMP.EMPNO || ' ' || SONEMP.ENAME || ' ' || SONEMP.DEPTNO || ' ' ||SONDNAME); END; |
/* 사번 이름 부서번호 부서명 ------------------------------ 7844 TURNER 30 SALES PL/SQL 프로시저가 성공적으로 완료되었습니다. */ |
4. PL/SQL의 WHILE문을 사용하여 1부터 200까지 합을 구하는 PL/SQL 문을 coding하시오.
# 방법1
SET SERVEROUTPUT ON; DECLARE V_NUM NUMBER ; V_SUM NUMBER := 0; BEGIN V_NUM := 1; WHILE V_NUM <= 200 LOOP V_SUM := V_SUM + V_NUM; V_NUM := V_NUM + 1; END LOOP; DBMS_OUTPUT.PUT_LINE('1부터 200까지의 합계 : ' || V_SUM); END; / |
/* 1부터 200까지의 합계 : 20100 PL/SQL 프로시저가 성공적으로 완료되었습니다 */ |
# 방법2
SET SERVEROUTPUT ON; DECLARE NUM NUMBER := 0; I NUMBER :=0; BEGIN WHILE (NUM < 200) LOOP NUM := NUM + 1; I := I+NUM; END LOOP; DBMS_OUTPUT.PUT_LINE('총합='||I); END; / |
/* 총합=20100 PL/SQL 프로시저가 성공적으로 완료되었습니다 */ |
반응형