PL/Python 언어 모듈은 파이썬을 자동으로 가져옵니다
호출 된 모듈plpy. 기능과
이 모듈의 상수는 파이썬 코드에서 사용할 수 있습니다.
처럼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 (레벨, "msg")C 코드에서.plpy.error
andplpy.fatal
실제로 파이썬 예외를 제기하십시오
끊임없는 경우 PL/Python 모듈이 호출하게됩니다elog (오류, msg)함수시기
핸들러는 Python 통역사에서 반환합니다. 긴 점프에서
파이썬 통역사는 아마 좋지 않을 것입니다.Raine Plpy.error ( "msg")및Plpy.fatal ( "msg")호출과 동일합니다plpy.error
andplpy.fatal
각각.
추가로plpy모듈
라는 두 가지 기능을 제공합니다.execute
and준비
. 부름plpy.execute
쿼리 문자열과 an
선택적 한계 인수는 해당 쿼리가 실행되고
결과 객체에서 결과가 반환됩니다. 결과 객체
목록 또는 사전 개체를 모방합니다. 결과 객체는 될 수 있습니다
행 번호와 필드 이름으로 액세스합니다. 이 추가 기능이 있습니다
행동 양식:nrows ()
쿼리에 의해 반환 된 행 수와상태
SPI_EXEC
반환 변수. 결과 객체는 할 수 있습니다
수정됩니다.
예를 들어
rv = plpy.execute ( "select * from my_table", 5)
최대 5 행까지my_table. 만약에my_table열이 있습니다my_field, 그것은로 액세스 할 것입니다
foo = rv [i] [ "my_field"]
두 번째 함수plpy.prepare
쿼리에 바인드 변수가 있습니다. 예를 들어:
plan = ply.prepare ( "first_name = $ 1", [ "text"]에서 my_users에서 last_name을 선택하십시오.
텍스트는 변수의 유형입니다
로 통과 할 것입니다.$ 1. 준비 후 a
진술, 당신은 함수를 사용합니다plpy.execute
실행하려면 :
rv = plpy.execute (plan, [ "name"], 5)
한도 인수는 호출에서 선택 사항입니다plpy.execute
.
현재 버전에서는 모든 데이터베이스 오류가 발생합니다 a 실행pl/python함수 그 기능을 즉시 종료 할 것입니다. 섬기는 사람; Python을 사용하여 오류 조건을 함정 할 수 없습니다시도 ... 캐치구성. 예를 들어, a SQL 문의 구문 오류가에 전달되었습니다.plpy.execute ()Call은 함수를 종료합니다. 이 동작은 향후 릴리스에서 변경 될 수 있습니다.
PL/Python 모듈을 사용하여 계획을 준비 할 때 자동으로 저장되었습니다. SPI 문서 읽기 (17 장) 이것에 대한 설명 수단.
함수 호출에서이를 효과적으로 사용하려면 영구 스토리지 사전 중 하나를 사용해야합니다SD또는gd, 참조섹션 22.1. 을 위한 예:
함수 만들기 audavedPlan () 트리거를 반환합니다. sd.has_key ( "plan") 인 경우 : plan = sd [ "Plan"] 또 다른: plan = ply.prepare ( "Select 1") sd [ "plan"] = 계획 # 나머지 기능 '언어'plpython ';