| 포스트그레SQL 7.4.30 문서 | ||||
|---|---|---|---|---|
| 이전 | 빠르게 뒤로 | 40장. PL/Python - Python 절차 언어 | 빨리 감기 | PostgreSQL : 문서 : 7.4 : 서버 프로그래밍 토토 사이트 |
PL/Python 언어 모듈은 자동으로 Python을 가져옵니다
호출된 모듈plpy. 기능과
이 모듈의 상수는 Python 코드에서 사용할 수 있습니다.
와 같이plpy.foo. 현재plpy함수를 구현합니다plpy.debug("msg"), plpy.log("msg"), plpy.info("msg"), plpy.notice("msg"), plpy.warning("msg"), plpy.error("msg")및plpy.fatal("msg"). 그들은 대부분 다음과 같습니다
전화elog(레벨, "메시지")C 코드에서. plpy.error그리고plpy.fatal실제로 Python 예외 발생
잡히지 않으면 PL/Python 모듈이 호출됩니다.elog(ERROR, 메시지)함수일 때
핸들러는 Python 인터프리터에서 반환됩니다. 멀리뛰기
Python 인터프리터는 아마도 좋지 않을 것입니다.plpy를 올립니다.ERROR("msg")그리고plpy를 올립니다.FATAL("msg")호출과 동일plpy.error그리고plpy.fatal각각.
또한,plpy모듈
라는 두 가지 함수를 제공합니다.실행그리고준비. 전화 중plpy.execute쿼리 문자열과
선택적 제한 인수로 인해 해당 쿼리가 실행되고
결과 개체에 결과가 반환됩니다. 결과 객체
목록 또는 사전 개체를 에뮬레이트합니다. 결과 개체는 다음과 같습니다.
행 번호와 열 이름으로 액세스합니다. 여기에는 이러한 추가 기능이 있습니다.
방법:nrows이는 다음을 반환합니다.
쿼리에서 반환된 행 수 및상태이것은SPI_exec()반환값. 결과 개체는 다음을 수행할 수 있습니다.
수정될 수 있습니다.
예를 들어,
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)
세 번째 인수는 한계이며 선택사항입니다.
현재 버전에서는 데이터베이스 오류가 발생하는 동안 실행 중PL/파이썬함수 해당 기능은 즉시 종료됩니다. 서버; Python을 사용하여 오류 조건을 포착하는 것은 불가능합니다.시도 ... 잡기구조물. 예를 들어, 에 전달된 SQL 문에 구문 오류가 있습니다.plpy.execute호출은 기능을 종료합니다. 이 동작은 향후 릴리스에서 변경될 수 있습니다.
PL/Python 모듈을 사용하여 계획을 준비할 때 자동으로 저장됩니다. SPI 문서 읽기(41장) 이것이 무엇을 의미하는지 설명합니다. 함수 호출 전반에 걸쳐 이를 효과적으로 사용하려면 영구 저장소 사전 중 하나를 사용해야 합니다.SD또는GD(참조섹션 40.1). 에 대한 예:
CREATE FUNCTION 사용savedplan() 반환 트리거 AS '
SD.has_key("계획")인 경우:
계획 = SD["계획"]
그 외:
계획 = plpy.prepare("SELECT 1")
SD["계획"] = 계획
# 나머지 기능
' 언어 plpythonu;
| 이전 | 집 | PostgreSQL : 문서 : 7.4 : 서버 프로그래밍 토토 사이트 |
| 트리거 기능 | 위로 | 서버 프로그래밍 인터페이스 |