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