이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.현재버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

24.4. 예

다음은 그것이 얼마나 쉬운지를 보여주는 몇 가지 기능입니다. PL/pgSQL 함수를 작성합니다. 더 복잡한 예를 들어보면 프로그래머는 PL/pgSQL에 대한 회귀 테스트를 살펴볼 수 있습니다.

PL/pgSQL에서 함수 작성 시 한 가지 고통스러운 세부 사항은 작은따옴표 처리. 함수의 소스 텍스트는 다음과 같습니다.함수 생성리터럴 문자열이어야 합니다. 리터럴 문자열 내부의 작은따옴표는 두 배로 표시되거나 백슬래시로 인용했습니다. 우리는 여전히 우아한 것을 찾고 있습니다. 대안. 그 동안 다음과 같이 작은따옴표를 두 배로 늘립니다. 아래 예를 사용해야 합니다. 이에 대한 어떤 해결책이라도 향후 버전포스트그레할 것이다 이후 버전과 호환되어야 합니다.

탈출 방법에 대한 자세한 설명과 예를 보려면 다양한 상황의 작은따옴표는 참조하세요.섹션 24.5.1.1.

예 24-2. 간단한 PL/pgSQL 함수 정수 증가

다음 두 PL/pgSQL 함수는 해당 함수와 동일합니다. C 언어 함수 토론의 대응 부분입니다. 이 함수는를 받습니다.정수그리고 1씩 증가시켜 증가된 값을 반환합니다.

CREATE FUNCTION add_one (정수) 정수 AS '를 반환합니다.
    시작
        $1 + 1을 반환합니다.
    끝;
' 언어 'plpgsql';

예 24-3. 간단한 PL/pgSQL 함수 텍스트 연결

이 함수는 2개를 받습니다.텍스트매개변수를 연결하고 이를 연결한 결과를 반환합니다.

CREATE FUNCTION concat_text (text, text) 텍스트를 '로 반환합니다.
    시작
        1달러를 돌려주세요 || $2;
    끝;
' 언어 'plpgsql';

예 24-4. 복합의 PL/pgSQL 함수 유형

이 예에서는 EMP(테이블)와정수함수에 대한 인수로 다음을 반환합니다. 에부울. "급여" 필드에 EMP 테이블은NULL, "f"를 반환합니다. 그렇지 않으면 해당 필드를와 비교합니다.정수함수에 전달되어 다음을 반환합니다.부울비교 결과(t 또는 에프). 이것은 C의 예와 동일한 PL/pgSQL입니다. 기능.

CREATE FUNCTION c_overpaid (EMP, 정수) RETURNS 부울 AS '
    선언
        $1에 대한 emprec 별칭;
        살림 별칭 $2;
    시작
        IF emprec.salary ISNULL 그러면
            ''f''를 반환합니다.
        종료하면;
        RETURN emprec.salary  sallim;
    끝;
' 언어 'plpgsql';