PROCEDURAL LANGUAGE EXTENSON TO SQL
오라클 자체에 내장되어 있는 절차적 언어
SQL 문장 내에서 변수의 정의, 조건처리(IF), 반복처리(LOOP, FOR, WHILE)등을 지원하여 SQL의 단점을 보완함
다수의 SQL 문을 한번 실행 가능(BLOCK구조)
*구조
- [선언부 (DECLARE SECTION)] : DECLARE로 시작, 변수나 상수를 선언 및 초기화 하는 부분
- 실행부 (EXECUTABLE SECTION) : BEGIN으로 시작, SQL문 또는 제어문(조건문, 반복문)드의 로직을 기술하는 부분
- [예외처리부 (EXCEPTION SECTION)] : EXCEPTION으로 시작, 예외 발생시 해결하기 위한 구문을 미리 기술해두는 부분
SET SERVEROUTPUT ON; BEGIN
DBMS_OUTPUT.PUT_LINE('HELLO ORACLE');
END;
/
<aside> 💡 자바랑 똑같음 System.out.println("hello oracle");
END;
/
이걸 써줘야 끝나는 구문인것 !
</aside>
변수, 상수 선언하는 공간(선언과 동시 초기화도 가능)
일반타입변수, 레퍼런스타입의 변수, ROW타입의 변수
****
1.1) 일반타입변수 선언 및 초기화
[표현식]
변수명 자료형 [CONSTANT] 자료형 [ := 값 ]
DECLARE
EID NUMBER;
ENAME VARCHAR2(20);
PI CONSTANT NUMBER := 3.1415;
BEGIN
EID := 600;
ENAME := '임수정';
`DBMS_OUTPUT.PUT_LINE`('EID : ' || EID);
`DBMS_OUTPUT.PUT_LINE`('ENAME : ' || ENAME);
`DBMS_OUTPUT.PUT_LINE`('PI : ' || PI);
END;
/
<aside> 💡 System.out.println("EID : " + EID); 랑 똑같은 소리
</aside>
사용자로부터 입력 받아서 출력
DECLARE
EID NUMBER;
ENAME VARCHAR2(20);
PI CONSTANT NUMBER := 3.14;
BEGIN
EID := &번호;
ENAME := '&이름';
DBMS_OUTPUT.PUT_LINE('EID : ' || EID);
DBMS_OUTPUT.PUT_LINE('ENAME : ' || ENAME);
DBMS_OUTPUT.PUT_LINE('PI : ' || PI);
END;
/
<aside> 💡 &는 사용자로부터 입력 받으라는소리 문자열은 ‘ ‘ 을 넣는다.
</aside>