일단 해보는 코딩/Oracle SQL

[오라클/SQL] PL/SQL 실행

eun_zoey2 2022. 6. 13. 12:49
728x90
PI / SQL

 

PL/SQL은 선언적인 SQL 언어와는 달리 SQL을 프로그래밍해서 처리하는 기법이다. 
보통 컴파일러가 이해할 수 있도록 해준다.
DECLARE 
  --- 선언(선택)
BEGIN
  --- 실행 코드 (필수)
EXCEPTION
  ---예외 처리(선택)
END; 
/ 구문으로 해준다. 


∎ 선언 부분에서는 실행문에서 사용될 변수, 쿼리 수행결과로 반환되는 여러 행을 처리해주는 커서(Cursor), 사용자 정의 예외 등을 정의한다.
∎ 실행 부분에서는 질의문이나 DML 문, 그리고 조건이나 제어문(IF 문, LOOP 문)을 정의한다.
∎ 예외처리 부분은 실행 시 발생 가능한 예외를 정의하고 예외 발생 시 처리하는 구문을 정의해준다. 변수는 미리 선언한 뒤 나중에 값을 줄 수도 있지만, 선언과 동시에 값을 부여한다.
∎ 변수는 '변수_명 데이터_타입'으로 해준다. 변수에 값 할당은 '변수_명 := 값'식으로 해준다. 변수의 선언과 동시에 값을 넣을 수 있다. 
=>과정은 Programming =>Compile =>Execution으로 진행되고 Compile에서 문제가 있으면 Debugging 하게 된다.

set serveroutput on;
declare
l_message varchar2(100);
begin
l_message := 'Hello World';
dbms_output.put_line(l_message);
end;
/

set serveroutput on;
begin
dbms_output.put_line('Hello World');
end;
/

결과 값은 같음

create or replace procedure h_workd
is
l_message varchar2(100) := 'Hello World!!' ;
			// 변수 선언과 동시에 초기값
begin
dbms_output.put_line(l_message);
end;
/


-- 실행하는 명령어
exec h_workd

select object_name, object_type from user_objects
where object_type = 'PROCEDURE';