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>

1. DECLARE 선언부

변수, 상수 선언하는 공간(선언과 동시 초기화도 가능)
일반타입변수, 레퍼런스타입의 변수, 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>

<aside> 💡 &는 사용자로부터 입력 받으라는소리 문자열은 ‘ ‘ 을 넣는다.

</aside>

레퍼런스타입변수 선언 및 초기화