여기에는 얼마나 쉬운지를 보여주는 몇 가지 기능 만 있습니다. pl/pgsql 함수를 작성하십시오. 더 복잡한 예를 위해 프로그래머는 PL/PGSQL에 대한 회귀 테스트를 볼 수 있습니다.
PL/PGSQL의 서면 기능의 하나의 고통스러운 세부 사항은 단일 따옴표 처리. 함수의 소스 텍스트 ON함수 만들기문자 그대로 문자열이어야합니다. 문자 그대로의 단일 따옴표는 두 배로 늘어나거나 백 슬래시와 인용. 우리는 여전히 우아한 것을 찾고 있습니다 대안. 그 동안 단일 따옴표를 두 배로 늘립니다 아래 예제를 사용해야합니다. 이를위한 해결책 미래 버전의Postgres의지 전진하십시오.
탈출 방법에 대한 자세한 설명과 예제 다른 상황의 단일 따옴표, 참조하십시오.섹션 24.5.1.1.
예 24-2. 간단한 PL/PGSQL 기능 정수를 증가시켜
다음 두 PL/PGSQL 함수는 그것과 동일합니다 C 언어 기능 토론의 상대. 이것 함수는를받습니다.정수및 증분 값을 반환합니다.
함수 생성 add_one (정수) 정수를 반환합니다. 시작하다 $ 1 + 1을 반환합니다. 끝; '언어'plpgsql ';
예제 24-3. 간단한 PL/PGSQL 기능 연결 텍스트
이 함수는 2를받습니다.텍스트매개 변수와 연결 결과를 반환합니다.
함수 만들기 concat_text (텍스트, 텍스트) 텍스트를 반환합니다. 시작하다 반품 $ 1 || $ 2; 끝; '언어'plpgsql ';
예제 24-4. 복합재에서 PL/PGSQL 기능 유형
이 예에서는 Emp (테이블)와 an을 취합니다.정수우리의 기능에 대한 인수로서 반환 에이부울. "급여"필드 인 경우 EMP 테이블은null, 우리는 "f"를 반환합니다. 그렇지 않으면 우리는 그 필드와와 비교합니다.Integer함수로 전달되어부울비교 결과 (t 또는 에프). 이것은 C의 예제에 해당하는 PL/PGSQL입니다. 기능.
함수 만들기 c_overpaid (emp, integer) boolean을 반환합니다. 선언하다 $ 1에 대한 EMPREC 별칭; $ 2에 대한 Sallim 별칭; 시작하다 emprec.salary isnull이면 `` 'f' '; 끝 IF; emprec.salary Sallim을 반환합니다. 끝; '언어'plpgsql ';