본문 바로가기
SQL/Oracle

[oracle] PROCEDURE 프로시저

by Pendine 2022. 7. 27.
728x90

https://www.tutorialspoint.com/plsql/plsql_procedures.htm

CREATE OR REPLACE PROCEDURE greetings(
  inputed in number,
  z OUT number
)
IS 
BEGIN
  select 1 into z from dual;
  dbms_output.put_line(' ' || ' : ' || z);
  z := inputed;
  dbms_output.put_line(' ' || ' : ' || z);
END;

greetings라는 프로시저는

입력받는 인자값으로 inputed와

반환할 값으로 z을 사용한다. 

 

프로시저 이후 동작할 부분을 begin과 end사이에 삽입하고

프로시저 선언 이후 바디와 연결하는 부분은 IS와 AS를 이용하여 연결한다. 

 

declare
 a number;

begin
  greetings(43,a);
  dbms_output.put_line(a); 
end;

위의 쿼리에서는 프로시저에서 반환하는 값을 저장할 a라는 변수를 선언해주고,

출력하는데,

 

저장할 변수를 선언해주기 위해서 declare를 이용하여 a 변수를 선언해주지 않으면 사용할 수 없다.

 

EXECUTE greetings;

위에서 이미 정의된 greetings는 위의 쿼리로는 실행 할 수 없지만.

인자값이 없이 단순 호출할 경우 위의 쿼리로 실행 할 수 있음.

 

 

출력할 문자열은 다음과 같은 명령어로 콘솔에 출력 할 수 있는데 

DBMS_OUTPUT.PUT_LINE('출력할 문자열');

프로시저의 실행 결과를 콘솔에 출력하기 위해서는 F5를 이용하여 쿼리를 실행해야한다. 

728x90

댓글