PL/SQL 블록의 기본 구조는 다음과 같습니다:
DECLARE
-- 선언부: 변수, 상수, 커서 등을 선언
BEGIN
-- 실행부: 실제 작업을 수행
EXCEPTION
-- 예외 처리부: 에러를 처리
END;
BEGIN
DBMS_OUTPUT.PUT_LINE('김연아'); -- '김연아' 출력
END;
DECLARE
name VARCHAR2(20) := '세종대왕';
BEGIN
DBMS_OUTPUT.PUT_LINE('당신의 이름은 ' || name);
END;
DECLARE
e_name emp.ename%TYPE; -- emp 테이블의 ename 컬럼 타입
e_sal emp.sal%TYPE; -- emp 테이블의 sal 컬럼 타입
BEGIN
SELECT sal, ename INTO e_sal, e_name
FROM emp
WHERE empno = 7788;
DBMS_OUTPUT.PUT_LINE('7788님의 이름은 ' || e_name || ' 급여는 ' || e_sal);
END;
DECLARE
data emp%ROWTYPE; -- emp 테이블의 행 타입
BEGIN
SELECT * INTO data
FROM emp
WHERE empno = 7788;
DBMS_OUTPUT.PUT_LINE('7788님의 이름은 ' || data.ename || ' 직업은 ' || data.job || ' 해당 매니저는 ' || data.mgr || ' 급여는 ' || data.sal);
END;
DECLARE
num1 NUMBER := 3;
num2 NUMBER := 5;
BEGIN
IF num1 > num2 THEN
DBMS_OUTPUT.PUT_LINE(num1 || '이 큽니다');
ELSE
DBMS_OUTPUT.PUT_LINE(num2 || '이 큽니다');
END IF;
END;
DECLARE
n_sales NUMBER;
n_commission NUMBER(10,2) := 0;
BEGIN
n_sales := &n_sales; -- 사용자 입력 받기
IF n_sales < 200 THEN
n_commission := n_sales * 0.1;
ELSIF n_sales >= 200 AND n_sales < 500 THEN
n_commission := n_sales * 0.05;
ELSIF n_sales >= 500 AND n_sales < 1000 THEN
n_commission := n_sales * 0.03;
ELSE
n_commission := n_sales * 0.02;
END IF;
DBMS_OUTPUT.PUT_LINE(n_sales || ', ' || n_commission);
END;
BEGIN
DBMS_OUTPUT.PUT_LINE('Oracle 시험 잘보세요');
DBMS_OUTPUT.PUT_LINE('Okim');
DBMS_OUTPUT.PUT_LINE('O33333');
END;