다음 표가 있다고 가정합니다.
테이블 직원 생성 ( 이름 텍스트, 기본 정수, 보너스 정수 );총 보상 (기본 + 보너스)을 얻기 위해 우리 함수를 다음과 같이 정의 할 수 있습니다.
함수 생성 TotalComp (정수, 정수) 정수를 반환합니다 as 'return $ _ [0] + $ _ [1]' 언어 'plperl';함수에 대한 인수가 전달되어 있음을 알 수 있습니다@_예상대로.
이제 우리는 다음과 같은 기능을 사용할 수 있습니다 :
직원의 이름, Totalcomp (Basesalary, 보너스) 선택;
그러나 우리는 또한 전체 튜플을 우리의 기능으로 전달할 수 있습니다 :
기능 작성 EMPCOMP (Employee)는 정수를 반환합니다. 내 $ emp = shift; return $ emp- ''basesalary '' + $ emp- ''bonus ''; '언어'plperl ';튜플은 해시에 대한 참조로 전달됩니다. 키는 튜플의 필드 이름. 해시 값은 값입니다 튜플의 해당 필드.
팁 :함수 본체가 SQL로 전달되기 때문에 문자열 리터럴함수 생성당신 Perl 소스 내에서 단일 따옴표를 피해야합니다. 위에 표시된대로 두 배로 또는 확장 된 것을 사용하여 인용 기능 (Q [], QQ [], QW []). 백 슬래시는 두 배로 늘어서 탈출해야합니다.
새로운 함수empcomp사용할 수 있습니다 좋다:
직원의 이름, Empcomp (Employee) 선택;
다음은 작동하지 않는 함수의 예입니다. 파일 시스템 운영은 보안상의 이유로 허용되지 않습니다.
함수 만들기 badfunc ()는 정수를 반환합니다. Open (임시, "/tmp/badfile"); 인쇄 온도 "Gotcha! \ n"; 반환 1; '언어'plperl ';함수 생성이 성공하지만 실행 그렇지 않을 것입니다.