| PostgreSQL 9.0.23 문서 | ||||
|---|---|---|---|---|
| PostgreSQL : 문서 : 9.0 : 배트맨 토토 함수 | 위로 | 42장. PL/Python - Python 절차 언어 | 사설 토토 사이트 : 문서 : 9.0 : 사설 토토 사이트 함수 | |
PL/Python 언어 모듈은 자동으로 Python을 가져옵니다 호출된 모듈plpy. 기능과 이 모듈의 상수는 Python 코드에서 사용할 수 있습니다. 와 같이plpy.foo.
그plpy모듈은 두 가지를 제공합니다.
호출된 함수실행그리고준비. 전화 중plpy.execute쿼리 문자열과
선택적 제한 인수로 인해 해당 쿼리가 실행되고
결과 개체에 결과가 반환됩니다. 결과 객체
목록 또는 사전 개체를 에뮬레이트합니다. 결과 개체는 다음과 같습니다.
행 번호와 열 이름으로 액세스합니다. 여기에는 이러한 추가 기능이 있습니다.
방법:nrows이는 다음을 반환합니다.
쿼리에서 반환된 행 수 및상태이것은SPI_execute()반환값. 결과 객체
수정될 수 있습니다.
예:
rv = plpy.execute("SELECT * FROM my_table", 5)
다음에서 최대 5개의 행을 반환합니다.my_table. 만일내_테이블열이 있습니다my_column, 다음과 같이 액세스됩니다.
foo = rv[i]["my_column"]
두 번째 기능,plpy.prepare, 다음에 대한 실행 계획을 준비합니다.
쿼리. 쿼리 문자열과 매개변수 목록을 사용하여 호출됩니다.
유형(쿼리에 매개변수 참조가 있는 경우) 에 대한
예:
plan = plpy.prepare("SELECT last_name FROM my_users WHERE first_name = $1", [ "text" ])
텍스트은 변수 유형입니다.
통과 예정입니다$1. 준비한 후
진술, 당신은 함수를 사용합니다plpy.execute실행하려면:
rv = plpy.execute(계획, [ "이름" ], 5)
세 번째 인수는 한계이며 선택사항입니다.
쿼리 매개변수 및 결과 행 필드는 다음 사이에서 변환됩니다. 다음에 설명된 PostgreSQL 및 Python 데이터 유형섹션 42.3. 예외는 복합 유형은 현재 지원되지 않습니다. 쿼리 매개변수로 거부되며 다음과 같은 경우 문자열로 변환됩니다. 쿼리 결과에 나타납니다. 후자에 대한 해결 방법으로 문제가 발생하면 쿼리를 다시 작성하여 복합 유형 결과는 결과 행의 필드입니다. 또는 결과 문자열 손으로 분석할 수 있지만 이 접근 방식은 그렇지 않습니다. 미래에도 사용할 수 없기 때문에 권장됩니다.
PL/Python 모듈을 사용하여 계획을 준비하면 다음과 같습니다. 자동으로 저장됩니다. SPI 문서 읽기(43장) 이것이 무엇을 의미하는지 설명합니다. 함수 호출 전반에 걸쳐 이를 효과적으로 사용하려면 영구 저장소 사전 중 하나를 사용해야 합니다.SD또는GD(참조젠 토토 : 문서 : 9.0 : 데이터 공유). 에 대한 예:
CREATE FUNCTION 사용savedplan() $$로 트리거 반환
SD.has_key("계획")인 경우:
계획 = SD["계획"]
그 외:
계획 = plpy.prepare("SELECT 1")
SD["계획"] = 계획
# 나머지 함수
$$ 언어 plpythonu;