Oracle's Procedural Language extension to SQL
SQL에서 확장된 절차적 프로그래밍 언어이며 변수, 조건 처리, 반복처리 등 다양한 기능을 사용할 수 있다.
프로시저
나 함수
를 통해 데이터를 연산, 가공하여 최종 결과만 출력할 수 있다. 노출
하지 않는다 이식성
이 좋다 DECLARE
[실행에 필요한 여러 요소 선언]; -선택
BEGIN
[작업을 위해 실제 실행하는 명령]; -필수
EXCEPTION
[PL/SQL 수행 도중 발생하는 오류 처리]; -선택
END;Hello PL/SQL 출력해보기
SET SERVEROUTPUT ON; --실행 결과를 화면에 출력 BEGIN DBMS_OUTPUT.PUT_LINE('Hello, PL/SQL'); END; /
;
을 넣지 않는다;
을 넣는다 /
를 넣는다
- 스칼라형
PL/SQL에서 변수를 선언할 때 사용되는 데이터 타입은 SQL에서 사용하던 데이터 타입과 유사합니다.숫자
문자
날짜
BOOLEAN
4가지로 나뉩니다.
- 참조형
참조형
은 오라클 데이터베이스에 존재하는 특정 테이블 열의 자료형이나 행 구절을 참조하는 자료형
%TYPE
은 열을 참조하고%ROWTYPE
은 행을 참조할 때 사용한다%TYPE = 변수이름 테이블이름.열이름%TYPE; %ROWTYPE = 변수이름 테이블이름%ROWTYPE;
사원번호와 사원이름 출력 예제
set serveroutput on declare v_eno employee.eno%type; v_ename employee.ename%type; begin dbms_output.put_line('사원번호 사원이름'); dbms_output.put_line('-------------------'); select eno,ename into v_eno, v_ename from employee where ename='SCOTT'; dbms_output.put_line(v_eno ||' '||v_ename); end; /
부서번호가 40인 부서이름과 지역을 찾으시오
SET SERVEROUTPUT ON DECLARE V_DEPT_ROW DEPT%ROWTYPE; BEGIN SELECT DEPTNO, DNAME, LOC INTO V_DEPT_ROW FROM DEPT WHERE DEPTNO = 40; DBMS_OUTPUT.PUT_LINE('DEPTNO : ' || V_DEPT_ROW.DEPTNO); DBMS_OUTPUT.PUT_LINE('DNAME : ' || V_DEPT_ROW.DNAME); DBMS_OUTPUT.PUT_LINE('LOC : ' || V_DEPT_ROW.LOC); END; /