익명 블록 사용 방법
SET SERVEROUTPUT ON;
SET TIMING ON;
DECLARE
vi_num INTEGER;
BEGIN
vi_num := 100.5;
DBMS_OUTPUT.PUT_LINE(vi_num);
END;
/
DECLARE
A INTEGER := 2**2*3**2;
BEGIN
DBMS_OUTPUT.PUT_LINE('A = '||A);
END;
/
DECLARE
V_NAME STUDENT.NAME%TYPE;
V_DEPTNO STUDENT.DEPTNO%TYPE;
BEGIN
SELECT NAME, DEPTNO
INTO V_NAME, V_DEPTNO
FROM STUDENT
WHERE STUDNO = 10101;
DBMS_OUTPUT.PUT_LINE(V_NAME || '-' || V_DEPTNO);
END;
/
IF문
DECLARE
VN_NUM1 NUMBER := 5;
VN_NUM2 NUMBER := 2;
BEGIN
IF VN_NUM1 >= VN_NUM2 THEN
DBMS_OUTPUT.PUT_LINE(VN_NUM1 || '이 큰수');
ELSE
DBMS_OUTPUT.PUT_LINE(VN_NUM2 || '이 큰수');
END IF;
END;
/
1. 사원 테이블에서 사원번호가 제일 큰 사원을 찾아낸 뒤, 이 '번호+1' 번으로 아래의 사원을 사원 테이블에 신규 입력하는 익명 블록을 만들어보자.
<사원명> : Harrison Ford
<이메일> : HARRIS
<입사일자> : 현재일자
<부서전호> : 50
2. 구구단 중 3단을 출력하는 익명 블록을 만들어보자.
3. 사원테이블에서 201번 사원의 이름과 이메일 주소를 출력하는 익명 블록을 만들어보자.
SET SERVEROUTPUT ON;
SET TIMING ON;
DECLARE
V_EMPID EMPLOYEES.EMPLOYEE_ID%TYPE;
BEGIN
SELECT MAX(EMPLOYEE_ID) + 1 INTO V_EMPID FROM EMPLOYEES;
DBMS_OUTPUT.PUT_LINE(V_EMPID);
INSERT INTO EMPLOYEES(EMPLOYEE_ID, FIRST_NAME, LAST_NAME, EMAIL, HIRE_DATE, JOB_ID, DEPARTMENT_ID)
VALUES (V_EMPID, 'Harrison', 'Ford', 'HARIIS', SYSDATE, 'ST_MAN', 50);
commit;
END;
/
-- 구구단 중 3단 출력
DECLARE
J NUMBER := 1;
BEGIN
DBMS_OUTPUT.PUT_LINE(3 || ' * ' || J || ' = ' || 3 * J);
J := J + 1;
DBMS_OUTPUT.PUT_LINE(3 || ' * ' || J || ' = ' || 3 * J);
J := J + 1;
DBMS_OUTPUT.PUT_LINE(3 || ' * ' || J || ' = ' || 3 * J);
J := J + 1;
DBMS_OUTPUT.PUT_LINE(3 || ' * ' || J || ' = ' || 3 * J);
J := J + 1;
DBMS_OUTPUT.PUT_LINE(3 || ' * ' || J || ' = ' || 3 * J);
J := J + 1;
DBMS_OUTPUT.PUT_LINE(3 || ' * ' || J || ' = ' || 3 * J);
J := J + 1;
DBMS_OUTPUT.PUT_LINE(3 || ' * ' || J || ' = ' || 3 * J);
J := J + 1;
DBMS_OUTPUT.PUT_LINE(3 || ' * ' || J || ' = ' || 3 * J);
J := J + 1;
DBMS_OUTPUT.PUT_LINE(3 || ' * ' || J || ' = ' || 3 * J);
END;
/
DECLARE
V_FIRST_NAME EMPLOYEES.FIRST_NAME%TYPE;
V_LAST_NAME EMPLOYEES.LAST_NAME%TYPE;
V_EMAIL EMPLOYEES.EMAIL%TYPE;
BEGIN
SELECT FIRST_NAME, LAST_NAME, EMAIL
INTO V_FIRST_NAME, V_LAST_NAME, V_EMAIL
FROM EMPLOYEES
WHERE EMPLOYEE_ID = 201;
DBMS_OUTPUT.PUT_LINE(V_FIRST_NAME || ' ' || V_LAST_NAME || ' ' || V_EMAIL || '@naver.com');
END;
/
DECLARE
VN_SALARY NUMBER := 0;
VN_DEPARTMENT_ID NUMBER := 0;
BEGIN
VN_DEPARTMENT_ID := ROUND(DBMS_RANDOM.VALUE(10, 120), -1);
SELECT SALARY
INTO VN_SALARY
FROM EMPLOYEES
WHERE DEPARTMENT_ID = VN_DEPARTMENT_ID
AND ROWNUM = 1;
DBMS_OUTPUT.PUT_LINE(VN_SALARY);
IF VN_SALARY BETWEEN 1 AND 3000
THEN DBMS_OUTPUT.PUT_LINE('낮음');
ELSIF VN_SALARY BETWEEN 3001 AND 6000
THEN DBMS_OUTPUT.PUT_LINE('중간');
ELSIF VN_SALARY BETWEEN 6001 AND 9000
THEN DBMS_OUTPUT.PUT_LINE('높음');
ELSE
DBMS_OUTPUT.PUT_LINE('최상위');
END IF;
END;
/
SELECT
ROUND(1234.567),
ROUND(1234.567, 1),
ROUND(1234.567, 0),
ROUND(1234.567, -1)
BEGIN
END;
/
'자바 풀스택 공부' 카테고리의 다른 글
삽질노트 6. Multiple Contexts have a path of ~ (0) | 2022.03.31 |
---|---|
Day 59. [Java] StringReader/Writer (0) | 2022.03.30 |
Day 57. [Java] FileCopy, DataInput / OutputStream, ObjectOutput (0) | 2022.03.28 |
Day 56. [JSP/Servlet/JavaScript] Cors, 자바로 웹 크롤링, 도로명주소API (0) | 2022.03.25 |
Day 55. [Java/JavaScript/jQuery] Ajax, jQuery, 메일 보내기 (0) | 2022.03.24 |
댓글