2025년 9월 25일:토토 커뮤니티 : 토토
이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
다음에 대한 동일한 페이지를 보고 싶을 수도 있습니다.503 토토 사이트 추천 페치 실패버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

26.2. PL/Perl 사용

다음 테이블이 있다고 가정합니다:

테이블 직원 생성(
    이름 텍스트,
    기본급 정수,
    보너스 정수
);
총 보상(기본 + 보너스)을 얻기 위해 우리는 다음과 같이 함수를 정의할 수 있습니다.
CREATE FUNCTION totalcomp(정수, 정수) RETURNS 정수
    AS '$_[0] + $_[1] 반환'
    언어 'plperl';
함수에 대한 인수가 전달되었음을 확인하세요@_예상했던 대로입니다.

이제 우리는 다음과 같이 함수를 사용할 수 있습니다:

SELECT 이름, totalcomp(기본급, 보너스) FROM 직원;

그러나 전체 튜플을 함수에 전달할 수도 있습니다:

CREATE FUNCTION empcomp(직원) 정수 AS '를 반환합니다.
    내 $emp = 교대;
    return $emp-''basesalary'' + $emp-''bonus'';
' 언어 'plperl';
튜플은 해시에 대한 참조로 전달됩니다. 열쇠는 튜플에 있는 필드의 이름입니다. 해시 값은 튜플의 해당 필드.

팁:함수 본문이 SQL로 전달되기 때문에 문자열 리터럴 to함수 생성당신 Perl 소스 내에서 작은따옴표를 이스케이프해야 합니다. 위에 표시된 대로 두 배로 늘리거나 확장된 인용 함수(q[], qq[], qw[]). 백슬래시는 두 배로 늘려 이스케이프해야 합니다.

새로운 기능empcomp사용 가능 좋아요:

이름 선택, empcomp(직원) FROM 직원;

다음은 작동하지 않는 기능의 예입니다. 보안상의 이유로 파일 시스템 작업은 허용되지 않습니다.

CREATE FUNCTION badfunc()는 정수 AS '를 반환합니다.
    open(TEMP, "/tmp/badfile");
    TEMP "찾았습니다!\n"을 인쇄합니다.
    1을 반환합니다.
' 언어 'plperl';
함수 생성은 성공하지만 실행 중입니다. 그렇지 않을 것이다.