pl/젠 토토의 함수는 표준을 통해 선언됩니다기능 만들기구문 :
기능 만들기funcName
(Argument-List
) 보고return-type
$$ # pl/젠 토토 기능 본체 $$ 언어 plython3u;
함수의 본문은 단순히 파이썬 스크립트입니다. 함수가 호출되면 인수는 목록의 요소로 전달됩니다args
; 명명 된 인수는 또한 젠 토토 스크립트의 일반 변수로 전달됩니다. 명명 된 인수의 사용은 일반적으로 더 읽기 쉽습니다. 결과는 젠 토토 코드에서 일반적인 방식으로 반환됩니다.return
또는수율
(결과 세트 문의 경우). 반환 값을 제공하지 않으면 젠 토토은 기본값을 반환합니다없음
. pl/젠 토토젠 토토의 번역없음
SQL NULL 값으로. 절차에서 파이썬 코드의 결과는이어야합니다.없음
(일반적으로 a없이 절차를 종료하여 달성합니다.return
명령문 또는 a를 사용하여return
인수가없는 진술); 그렇지 않으면 오류가 발생합니다.
예를 들어, 두 정수 중 더 큰 기능은 다음과 같이 정의 될 수 있습니다.
기능 생성 Pymax (A Integer, B Integer) 정수를 반환합니다 $$로 A B : 반환 a 반환 b $$ 언어 plython3u;
함수 정의의 본문으로 제공되는 파이썬 코드는 파이썬 함수로 변환됩니다. 예를 들어 위의 결과는 다음과 같습니다.
def __pl젠 토토_procedure_pymax_23456 () : A B : 반환 a 반환 b
23456이 함수에 의해 할당 된 OID라고 가정하면PostgreSQL.
인수는 글로벌 변수로 설정됩니다. 파이썬의 범위 규칙으로 인해, 변수가 블록에서 전역으로 개정되지 않는 한, 인수 변수를 기능 내에서 변수 이름 자체와 관련된 표현식 값으로 재 할당 할 수 없다는 미묘한 결과를 초래합니다. 예를 들어 다음은 작동하지 않습니다.
함수 생성 pystrip (x text) 텍스트를 반환합니다 $$로 x = x.strip () # 오류 반환 x $$ 언어 plython3u;
에 할당하기 때문에x
makesx
전체 블록의 로컬 변수, 그래서x
과제의 오른쪽에있는 것은 여정이없는 로컬 변수를 말합니다x
, PL/젠 토토 함수 매개 변수가 아닙니다. 사용 사용글로벌
진술, 이것은 작동하도록 할 수 있습니다 :
함수 생성 pystrip (x text) 텍스트를 반환합니다 $$로 글로벌 x x = x.strip () # 지금 반환 x $$ 언어 plython3u;
그러나 PL/젠 토토 의이 구현 세부 사항에 의존하지 않는 것이 좋습니다. 함수 매개 변수를 읽기 전용으로 취급하는 것이 좋습니다.
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면