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