본문 바로가기
DB & SQL

Oracle Stored Procedure 1장(프로시저 생성 및 저장)

by pms93 2024. 7. 10.
CREATE OR REPLACE PROCEDURE TESTPROCEDURE (
/*
	CREATE PROCEDURE 
	 : 새 Procedure를 생성하며 중복된 이름이 존재 할 경우 에러 발생.
	 
	CREATE OR REPLACE PROCEDURE
	 : Procedure를 생성하며 중복된 이름이 존재할 경우 덮어씌운다.
*/
/*
	 Procedure 호출 시 전달할 파라미터를 선언. IN, OUT, IN OUT 총 3개의 변수를 선언 할 수 있다. 생략할 경우 IN 변수로 선언된다.
	 
	 IN
	  : Procedure 호출 시 해당 변수의 값이 초기화 되며 CONST 상수로 값 변경이 불가능하다.
	  : 호출 시 전달받은 데이터가 없을 경우 default value로 변수를 초기화 하며 생략 가능.
	 
	 OUT
	  : Procedure 호출 시 동일한 타입의 변수를 전달해야 한다. Procedure 프로세스 중 값을 변경할 수 있으며 호출 종료 후 해당 변수의 값을 참조 할 수 있다.
	  : Java로 치면 Call By Reference의 개념과 비슷하다.
	  : default value 선언 불가
	  
	 IN OUT
	  : IN, OUT의 두가지 성질을 띈다. 파라미터로 값을 전달받아 Procedure 프로세스 중 값을 변경할 수 있다.
	  : default value 선언 불가
	  
	 변수 타입 지정 시 버퍼 사이즈를 별도로 지정하지 않는다.
*/
	v1 IN NVARCHAR2 := 'no Data',
	v2 OUT NVARCHAR2,
	v3 IN OUT NVARCHAR2
)
AS
/*
	변수 선언지역
	
	해당 영역에 선언된 변수는 아래 *익명블록 에서 전역변수 판정
	(*익명블록 : 아래 BEGIN END; 의 영역을 익명블록 이라고 한다.)
	
	선언과 동시에 초기화가 가능하다.
*/
	i1 INTEGER;
	i2 INTEGER := 1;
	s1 NVARCHAR2(10);
	s2 NVARCHAR2(9000);
BEGIN
	/*
		익명블록
		 : 로직이 수행되는 블록이며 scope의 개념을 갖는다.
	*/
END;

'DB & SQL' 카테고리의 다른 글

Oracle Stored Procedure 2장(지역변수 선언 및 프로세스)  (0) 2024.07.11
Oracle ROW_NUMBER() OVER()  (2) 2024.07.10
Oracle ROWNUM  (0) 2024.07.10
Oracle XML  (0) 2024.06.26
Oracle JSON  (0) 2024.06.26