PL/SQL

팡태(❁´◡`❁)·2022년 3월 23일
0

oracle/MySQL

목록 보기
9/13

● 변수 선언

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;
/

0개의 댓글