Notice
Recent Posts
Recent Comments
관리 메뉴

Developer Gonie

[6주차] 35. PL/SQL언어, 사용자 정의 프로시저(함수와 비슷하지만 반환값이 없음) 본문

K-DigitalTraining 강의/2. Oracle + PLSQL

[6주차] 35. PL/SQL언어, 사용자 정의 프로시저(함수와 비슷하지만 반환값이 없음)

이대곤 2022. 6. 17. 16:18

프로시저란?

내부에서의 동작은 함수와 같지만 함수와 다르게 반환값이 없음. void procedure()와 같이 반환값이 없는 메소드와 같음.

반환값이 없기 때문에 select 에서 함수를 호출하듯이 특정 열의 값을 연산하여 대치해주는 것이 불가하다.

프로시저 동작 방식을 이해하기 위한 초간단 예시

* as 대신에 is 도 사용가능한데 별차이 없음

-- 특정 레코드를 update 하는 프로시저
create or replace procedure ptest(no number) -- 이름이 ptest인 프로시저
as 			-- 함수와 다르게 return, return 타입이 없음

begin
	update members
	set salary = salary*1.1
	where id = no;
end;
/

-- 함수는 호출을 select 구문으로 했는데, 프로시저는 아래와 같이 호출함 2가지 방법
execute ptest(3)
exec ptest(3)

프로시저 예시

-- 특정 레코드를 delete 하는 프로시저
create or replace procedure ptest3(vno number) 
as 			

begin
	delete from customer where no = vno;
end;
/

-- 함수는 호출을 select 구문으로 했는데, 프로시저는 아래와 같이 호출함 2가지 방법
execute ptest3(3)
exec ptest3(3)

 

 

 

Comments