이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다PostgreSQL : 문서 : 17 : 43 장 - PL/토토 꽁 머니 - 토토 꽁 머니 Prossural Language버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

21 장 PL/사설 토토 사이트 -사설 토토 사이트 절차 언어

pl/사설 토토 사이트은 당신이 쓰다PostgreSQL기능 그만큼사설 토토 사이트프로그래밍 언어.

특정 데이터베이스에 pl/사설 토토 사이트을 설치하려면Createlang Pl사설 토토 사이트dbname.

팁 :언어가 설치된 경우template1, 모든 후속 데이터베이스 언어가 자동으로 설치됩니다.

참고 :소스 패키지 사용자는 특별히해야합니다 설치 프로세스 중에 PL/사설 토토 사이트 빌드를 활성화하십시오 (자세한 내용은 설치 지침을 참조하십시오 정보). 이진 패키지 사용자는 pl/사설 토토 사이트을 찾을 수 있습니다 별도의 하위 포장.

21.1. pl/perl 함수 및 인수

pl/사설 토토 사이트 언어에서 함수를 만들려면 표준 구문 :

함수 만들기funcName(Argument-Types) 반환return-typeas '
    # pl/사설 토토 사이트 기능 본체
'언어 pl사설 토토 사이트;

함수의 본문은 일반 사설 토토 사이트 코드입니다.

인수 및 결과는 다른 사설 토토 사이트에서와 같이 처리됩니다. 서브 루틴 : 논쟁이 통과되었습니다@_, 결과 값은로 반환됩니다.return또는 마지막 표현식으로 함수에서 평가되었습니다. 예를 들어, 기능이 반환됩니다 두 개의 정수 값 중 더 큰 것은 다음과 같이 정의 될 수 있습니다.

함수 생성 사설 토토 사이트_max (정수, 정수) 정수를 반환합니다.
    if ($ _ [0] $ _ [1]) return $ _ [0]; 
    반환 $ _ [1];
'언어 plperl;

SQL NULL 값이 함수로 전달되면 인수 값은로 나타납니다."정의되지 않은"in 펄. 위의 함수 정의는 그다지 멋지게 행동하지 않습니다 널 입력으로 (실제로는 마치 마치 0). 우리는 추가 할 수 있습니다엄격한만들기위한 함수 정의PostgreSQL더 합리적인 일을하십시오 : 널 값이 전달되면 기능을 호출하지 않습니다. 모두이지만 NULL 결과를 자동으로 반환합니다. 또는, 우리는 정의되지 않은 입력을 확인할 수 있습니다 기능 본체. 예를 들어, 우리가 원한다고 가정 해사설 토토 사이트_max1 개의 널과 널 1 개가 있습니다 널이 아닌 널이 아닌 논증을 반환하는 주장 값:

함수 생성 사설 토토 사이트_max (정수, 정수) 정수를 반환합니다.
    내 ($ a, $ b) = @_;
    if (! 정의 $ a) 
        if (! 정의 $ b) return undef; 
        반품 $ B;

    if (! 정의 $ b) return $ a; 
    if ($ a $ b) return $ a; 
    반품 $ B;
'언어 plperl;

위와 같이, pl/사설 토토 사이트에서 sql null 값을 반환하려면 함수, 정의되지 않은 값을 반환하십시오. 이것은 할 수 있습니다 함수는 엄격하거나 그렇습니다.

복합 유형 인수는 다음과 같은 함수로 전달됩니다 해시에 대한 참조. 해시의 키는 속성입니다 복합 유형의 이름. 예는 다음과 같습니다.

테이블 직원 만들기 (
    이름 텍스트,
    기본 정수,
    보너스 정수
);

function empcomp (Employee)는 정수를 '로 반환합니다.
    내 ($ emp) = @_;
    return $ emp-  ''basesalary '' + $ emp-  ''bonus '';
'언어 plperl;

직원의 이름, Empcomp (직원) 선택 선택;

현재 복합 유형을 반환하는 것에 대한 지원은 없습니다 결과 가치.

팁 :함수 본문이 전달되기 때문에 SQL 문자열 리터럴 to생성 기능, 당신은 단일 따옴표를 피해야합니다 일반적으로 두 배가되는 사설 토토 사이트 소스 내의 백 슬래시 위의 예에서 볼 수 있듯이. 또 다른 가능 접근 방식은 사설 토토 사이트 's를 사용하여 단일 따옴표를 작성하지 않는 것입니다. 확장 인용 연산자 (Q [], QQ [], QW []).