이 문서는 지원되지 않는 버전의 와이즈 토토을위한 것입니다.
당신은에 대해 같은 페이지를 보려고 할 수 있습니다토토 결과 : 문서 : 17 : 44.6. 토토 결과 액세스버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

22.3. 데이터베이스 액세스

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.errorandplpy.fatal실제로 파이썬 예외를 제기하십시오 끊임없는 경우 PL/Python 모듈이 호출하게됩니다elog (오류, msg)함수시기 핸들러는 Python 통역사에서 반환합니다. 긴 점프에서 파이썬 통역사는 아마 좋지 않을 것입니다.Raine Plpy.error ( "msg")Plpy.fatal ( "msg")호출과 동일합니다plpy.errorandplpy.fatal각각.

추가로plpy모듈 라는 두 가지 기능을 제공합니다.executeand준비. 부름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 ';