다음은 얼마나 쉬운지 보여주는 몇 가지 기능입니다. 쓰다PL/pgSQL함수. 에 대한 프로그래머가 회귀 분석을 볼 수 있는 더 복잡한 예 테스트하다PL/pgSQL.
함수 작성에 대한 한 가지 고통스러운 세부 사항PL/pgSQL은 작은따옴표 처리입니다. 함수의 소스 텍스트는만들기 기능은 리터럴 문자열이어야 합니다. 내부의 작은따옴표 리터럴 문자열은 두 배로 묶거나 따옴표로 묶어야 합니다. 백슬래시. 우리는 여전히 우아한 대안을 찾고 있습니다. 에서 그 동안 아래 예와 같이 작은따옴표를 두 배로 늘립니다. 사용해야합니다. 향후 버전에서 이에 대한 모든 솔루션을 제공합니다.포스트그레SQL앞으로 갈 것입니다 호환됩니다.
탈출 방법에 대한 자세한 설명과 예를 보려면 다양한 상황의 작은따옴표는 참조하세요.섹션 23.11.1.1.
예 23-2. 간단한PL/pgSQL증가 기능 정수
다음 두 가지PL/pgSQL함수는 C의 해당 함수와 동일합니다. 언어 기능 토론. 이 함수는정수그리고 1씩 증가합니다. 증가된 값을 반환합니다.
CREATE FUNCTION add_one (정수) 정수를 '로 반환합니다.
시작
$1 + 1을 반환합니다.
끝;
' 언어 'plpgsql';
예 23-3. 간단한PL/pgSQL텍스트 연결 기능
이 함수는 2개를 받습니다.텍스트매개변수를 연결하고 이를 연결한 결과를 반환합니다.
함수 생성 concat_text (TEXT, TEXT)는 텍스트를 '로 반환합니다.
시작
1달러를 돌려주세요 || $2;
끝;
' 언어 'plpgsql';
예 23-4. 갑PL/pgSQL복합 유형의 기능
이 예에서 우리는EMP(a 표) 및정수우리의 주장으로 를 반환하는 함수부울. 만약급여필드의EMP테이블은NULL, 우리는 돌아왔다f. 그렇지 않으면 우리는 다음과 비교합니다. 해당 필드에는정수다음으로 전달됨 함수를 반환하고부울결과 비교(t 또는 f). 이것은PL/pgSQL다음 예와 동일 C 함수.
CREATE FUNCTION c_overpaid (EMP, INTEGER)는 부울을 '로 반환합니다.
선언
$1에 대한 emprec 별칭;
살림 별칭 $2;
시작
IF emprec.salary ISNULL 그러면
''f''를 반환합니다.
종료하면;
RETURN emprec.salary sallim;
끝;
' 언어 'plpgsql';