| PostgreSQL 9.2.24 문서 | ||||
|---|---|---|---|---|
| PostgreSQL : 문서 : 9.2 : 스포츠 토토 결과 2 vs. 스포츠 토토 결과 3 | 위로 | 42장. 윈 토토/Python - Python 절차 언어 | 사설 토토 : 문서 : 9.2 : 데이터 값 | |
윈 토토/Python의 기능은 표준을 통해 선언됩니다.함수 생성구문:
함수 생성기능 이름 (인수 목록) 반품반환 유형AS $$ # 윈 토토/Python 함수 본문 $$ 언어 윈 토토pythonu;
함수의 본문은 단순히 Python 스크립트입니다. 때 함수가 호출되면 해당 인수가 요소로 전달됩니다. 목록인수; 명명된 인수도 Python 스크립트에 일반 변수로 전달됩니다. 명명된 사용 인수는 일반적으로 더 읽기 쉽습니다. 결과는 다음에서 반환됩니다. 일반적인 방식으로 Python 코드를 작성합니다.반환또는수율(경우에 따라 결과 집합 문의 내용). 반환 값을 제공하지 않으면 Python은 기본값을 반환합니다.없음. 윈 토토/파이썬파이썬의 번역없음SQL null 값으로.
예를 들어, 두 정수 중 더 큰 값을 반환하는 함수 다음과 같이 정의할 수 있습니다.
CREATE FUNCTION pymax(a 정수, b 정수)
정수를 반환합니다.
AS $$
a b인 경우:
반환하다
b를 돌려주다
$$ 언어 plpythonu;
함수 본문으로 제공되는 Python 코드 정의는 Python 함수로 변환됩니다. 예를 들어, 위의 결과는 다음과 같습니다.
def __plpython_procedure_pymax_23456():
a b인 경우:
반환하다
반환 b
23456이 다음에 의해 함수에 할당된 OID라고 가정합니다.포스트그레SQL.
인수는 전역 변수로 설정되었습니다. 때문에 Python의 범위 지정 규칙에 따르면 이는 다음과 같은 미묘한 결과를 가져옵니다. 인수 변수는 함수 내부에서 다시 할당될 수 없습니다. 변수 이름 자체와 관련된 표현식의 값 변수가 블록에서 전역으로 다시 선언되지 않는 한. 에 대한 예를 들어 다음은 작동하지 않습니다.
CREATE FUNCTION pystrip(x 텍스트) 텍스트를 반환합니다. AS $$ x = x.strip() # 오류 x를 반환 $$ 언어 plpythonu;
다음에 할당하기 때문에x만든다x전체 블록에 대한 지역 변수, 그래서x오른쪽에 할당이 아직 할당되지 않은 지역 변수를 참조합니다.x, 윈 토토/Python 함수 매개변수가 아닙니다. 를 사용하여글로벌진술, 이것은 다음과 같습니다 작동하도록 만들어졌습니다:
CREATE FUNCTION pystrip(x 텍스트) 텍스트를 반환합니다. AS $$ 글로벌엑스 x = x.strip() # 이제 알았어 x를 반환 $$ 언어 plpythonu;
그러나 이 구현 세부 사항에 의존하지 않는 것이 좋습니다 윈 토토/파이썬의. 함수 매개변수를 다음과 같이 처리하는 것이 좋습니다. 읽기 전용입니다.