● 변수 선언
DECLARE
V_NUM NUMBER(4) := 1234;
V_STR VARCHAR2(10);
BEGIN
V_STR := 'HELLO';
DBMS_OUTPUT.PUT_LINE('V_NUM값: ' || V_NUM);
DBMS_OUTPUT.PUT_LINE('V_STR값: ' || V_STR);
END;
/
● OUTPUT환경 ON
SET SERVEROUTPUT ON;
● 확인
BEGIN
-- console.log와 같음
DBMS_OUTPUT.PUT_LINE('HELLO');
END;
/
● 조건문
DECLARE
V_SCORE NUMBER:= 95;
V_GRADE VARCHAR2(2) := '';
BEGIN
IF(V_SCORE >= 90) THEN
V_GRADE:= 'A';
ELSIF (V_SCORE >= 80) THEN
V_GRADE:= 'B';
ELSIF (V_SCORE >= 70) THEN
V_GRADE:= 'C';
ELSE
V_GRADE:= 'F';
END IF;
DBMS_OUTPUT.PUT_LINE('점수: ' || V_SCORE || '등급: ' || V_GRADE );
END;
/
● 반복문 + 조건문
DECLARE
V_NUM NUMBER(3):= 10;
BEGIN
FOR I IN 1..V_NUM LOOP
IF MOD(I, 2) = 0 THEN
DBMS_OUTPUT.PUT_LINE(I || ' = 짝수');
ELSE
DBMS_OUTPUT.PUT_LINE(I || ' = 홀수');
END IF;
END LOOP;
END;
/
● 반복문(구구단)
DECLARE
V_NUM NUMBER:= 3;
BEGIN
FOR I IN 1..9 LOOP
DBMS_OUTPUT.PUT_LINE( V_NUM || '*' || I || '=' || V_NUM*I );
END LOOP;
END;
/
● 추가하기 (MEMBER2 테이블)
DECLARE
-- 변수 정의
BEGIN
-- 수행. INSERT INTO 테이블명(컬럼명) VALUES(추가할 값)
INSERT INTO MEMBER2(USERID, USERPW, USERNAME, USERAGE, USERDATE)
VALUES('W', 'W', '가', 11, CURRENT_DATE);
COMMIT;
EXCEPTION
-- 오류 처리
WHEN OTHERS THEN
ROLLBACK;
END;
/
● 일괄추가하기 (MEMBER2 테이블)
DECLARE
-- 변수 정의
BEGIN
-- 수행. INSERT INTO 테이블명(컬럼명) VALUES(추가할 값)
FOR I IN 1..10 LOOP
INSERT INTO MEMBER2(USERID, USERPW, USERNAME, USERAGE, USERDATE)
VALUES('W' || I, 'W', '가', 11, CURRENT_DATE);
END LOOP;
COMMIT;
EXCEPTION
-- 오류 처리
WHEN OTHERS THEN
ROLLBACK;
END;
/
SELECT * FROM MEMBER2;
● 조회
DECLARE
V_MEM MEMBER2%ROWTYPE;
V_USERID MEMBER2.USERID%TYPE; -- 멤버2의 USERID 타입을 그대로 넣어줘!
BEGIN
-- SELECT * FROM 테이블명 WHERE 조건;
SELECT * INTO V_MEM FROM MEMBER2 WHERE USERID='W';
DBMS_OUTPUT.PUT_LINE(V_MEM.USERID);
DBMS_OUTPUT.PUT_LINE(V_MEM.USERNAME);
END;
/
● 목록(여러개 조회)
DECLARE
CURSOR CUR IS (SELECT * FROM MEMBER2);
BEGIN
FOR TMP IN CUR() LOOP
DBMS_OUTPUT.PUT_LINE('USERID: ' || TMP.USERID);
END LOOP;
END;
/