본문 바로가기
데이터베이스/Postgresql

[PostgreSql] 함수 function 생성 방법

by cbwstar 2022. 6. 28.
728x90
반응형

DBeaver 툴을 이용하여 기본 템플릿 functin 생성하는 방법

 

create New Function 클릭하면 입력창이 뜬다.

확인 버튼 클릭

기본 템플릿 파일이 생성 된다.

function은 리턴값이 존재하고 프로시저는 리턴값이 있을수도 있고 없을수도 있다.

postgresql은 특이하게 function안에 commit나 rollback구문을 넣으면 프로시저나,함수 호출시 에러가 발생한다. 오라클에서는 문제가 안된다.

사실 function안 또는 프로시저안에 commit문이나 rollback을 넣는것 자체가 문제다.

원자성이 훼손된다. 프로그램에서 호출시에 전체가 성공해야 commit이 실행되어야 하는데 프로시저안에 중간 중간 다 박아 넣으면 전체가 성공해야 commit처리가 되어야 하는데 그냥 성공한거는 commit되는 문제가 발생한다.

그래서 postgresql은 그냥 프로시저 안에 넣으면 실행시 오류로 처리하는건지 ...

CREATE OR REPLACE FUNCTION public.fn_test()
	RETURNS numeric
	LANGUAGE plpgsql
AS $function$
 declare 
  /* 변수 선언 */
   v_test varchar(100);
   v_date timestamp;
   
	BEGIN
	/* 로직 구현 */	
	/*변수 초기값 셋팅 */	
	v_date := now();

	END;
$function$

함수 파라미터에 인자가 있는 경우에는

out 파라미터는 inout으로 대체하면 된다.

예)

create or replace function public.fn_param_test(v_param in varchar,v_out_param inout varchar)

   returns varchar

  language plpgsql

as $$

declare

begin

return;

end;

$$

 

728x90
반응형

댓글



"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

loading