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

CHAPTER 37. 스포츠 토토 사이트/PERL -PERL 절차 언어

스포츠 토토 사이트/perl은 당신이 쓰다PostgreSQL기능 그만큼Perl프로그래밍 언어.

특정 데이터베이스에 스포츠 토토 사이트/perl을 설치하려면Createlang 스포츠 토토 사이트perldbname.

팁 :언어가 설치된 경우tem스포츠 토토 사이트ate1, 모든 후속 데이터베이스 언어가 자동으로 설치됩니다.

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

37.1. 스포츠 토토 사이트/perl 함수 및 인수

스포츠 토토 사이트/perl 언어에서 함수를 만들려면 표준 구문 :

기능 만들기funcName(Argument-Types) 반환return-type$$
    # 스포츠 토토 사이트/perl 기능 본체
$$ 언어 스포츠 토토 사이트perl;

함수의 본문은 일반 Perl 코드입니다.

의 구문함수 만들기명령은 함수 본체가 문자열로 쓰여져야합니다. 끊임없는. 일반적으로 달러 인용문을 사용하는 것이 가장 편리합니다 (보다섹션 4.1.2.213486_13626') 및 백 슬래시 (\) 함수 본문에 사용 일반적으로 두 배가되어 (참조섹션 4.1.2.1).

인수와 결과는 다른 perl에서와 같이 처리됩니다. 서브 루틴 : 논쟁이 통과되었습니다@_, 결과 값은로 반환됩니다.return또는 마지막 표현 함수에서 평가.

예를 들어, 두 정수 중 더 큰 것을 반환하는 함수 값은 다음과 같이 정의 될 수 있습니다.

함수 생성 perl_max (정수, 정수)는 정수를 $$로 반환합니다
    if ($ _ [0] $ _ [1]) return $ _ [0]; 
    반환 $ _ [1];
$$ 언어 plperl;

SQL 널 값인 경우is 함수로 전달되면 인수 값이로 나타납니다."정의되지 않은"Perl. 위 함수 정의는 NULL과 잘 어울리지 않습니다 입력 (실제로는 제로 인 것처럼 작용합니다). 우리 추가 할 수 있습니다엄격한함수에 정의PostgreSQL더 합리적인 일을하십시오 : 널 값이 전달되면 함수는 전혀 호출되지 않지만 널을 반환합니다. 결과를 자동으로. 또는 우리는 확인할 수 있습니다 기능 본문의 정의되지 않은 입력. 예를 들어, 가정하십시오 우리가 원했던perl_max하나와 함께 무시 무시한 인수를 반환하기위한 NULL과 하나의 unnull 인수, 널 가치보다는 :

함수 생성 perl_max (정수, 정수)는 정수를 $$로 반환합니다
    내 ($ a, $ b) = @_;
    if (! 정의 $ a) 
        if (! 정의 $ b) return undef; 
        반품 $ B;

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

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

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

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

Function Empcomp (Employee)는 정수를 $$로 반환합니다
    내 ($ emp) = @_;
    return $ emp- basesalary + $ emp- 보너스;
$$ 언어 plperl;

직원의 이름, Empcomp (Employee.*)를 선택하십시오.

스포츠 토토 사이트/PERL 함수는 복합 유형 결과를 사용하여 반환 할 수 있습니다 동일한 접근법 : 필요한 속성. 예를 들어,

타입 타입 testrowperl 생성 (F1 Integer, F2 Text, F3 Text);

function perl_row ()를 작성하거나 바꾸십시오
    return f2 = 'hello', f1 = 1, f3 = 'world';
$$ 언어 plperl;

perl_row ();에서 *를 선택하십시오.

신고 된 결과 데이터 유형의 모든 열이 아닌 해시에있는 것은 널로 반환됩니다.

스포츠 토토 사이트/perl 함수는 스칼라 또는 복합 유형. 이렇게하려면 배열에 대한 참조를 반환하십시오 스칼라 또는 해시에 대한 참조가 포함되어 있습니다. 각기. 간단한 예는 다음과 같습니다.

함수 생성 또는 교체 perl_set_int (int) 정수를 $$로 설정합니다.
반환 [0 .. $ _ [0]];
$$ 언어 plperl;

perl_set_int (5)에서 *를 선택하십시오.

function perl_set ()을 setsof testrowperl로 $$로 반환합니다.
    반품 [
        f1 = 1, f2 = 'hello', f3 = 'world',
        f1 = 2, f2 = 'hello', f3 = 'postgresql',
        f1 = 3, f2 = 'hello', f3 = '스포츠 토토 사이트/perl'
    ];
$$ 언어 plperl;

perl_set ();에서 *를 선택하십시오.

이렇게하면 Perl이 메모리의 전체 배열; 따라서이 기술은 확장되지 않습니다 매우 큰 결과 세트로.

스포츠 토토 사이트/perl현재는 그렇지 않습니다 도메인 유형에 대한 완전한 지원 : 도메인을 동일하게 처리합니다. 기본 스칼라 유형으로. 이것은 제약을 의미합니다 도메인과 관련된 것은 시행되지 않습니다. 이것은 아닙니다 기능 인수에 대한 문제이지만 선언하는 경우 위험입니다. 에이스포츠 토토 사이트/perl도메인 유형 반환.