Postgresql 9.0.23 문서 | ||||
---|---|---|---|---|
배트맨 토토 : 문서 : 9.0 : 절차 언어 | up | 제 38 장. 절차 배트맨 토토 | Postgre토토 : 문서 : 9.0 : PL/PG토토 -토토 절차 언어 |
절차 배트맨 토토는이어야합니다."설치"각 데이터베이스가있는 곳에 사용된. 그러나 데이터베이스에 설치된 절차 배트맨 토토template1자동으로 사용할 수 있습니다 그 후에는 모든 데이터베이스가 생성되었습니다.template1데이터베이스 생성. 따라서 데이터베이스 관리자는 할 수 있습니다 어떤 데이터베이스에 사용 가능한지 결정하고 그가 선택한 경우 기본적으로 일부 배트맨 토토를 사용할 수 있도록합니다.
표준 분포와 함께 제공되는 배트맨 토토의 경우 실행하기에만 필요합니다생성 배트맨 토토 Language_Nameto 언어를 현재 데이터베이스에 설치하십시오. 또는 프로그램롤 토토 : 문서 :이 작업을 수행하는 데 사용할 수 있습니다 쉘 명령 줄. 예를 들어 배트맨 토토를 설치하려면pl/perl데이터베이스로template1, 사용 :
Createlang plperl template1
아래 설명 된 수동 절차는 권장됩니다 맞춤 배트맨 토토 설치생성 배트맨 토토
매뉴얼 절차 배트맨 토토 설치
절차 배트맨 토토가 데이터베이스에 5 개 이상으로 설치됩니다. 데이터베이스 슈퍼 사용자가 수행 해야하는 단계. (을 위한 알려진 배트맨 토토배트맨 토토 생성, 두 번째 ~ 네 번째 단계는 생략 할 수 있습니다. 필요한 경우 자동으로 수행됩니다.)
배트맨 토토 핸들러의 공유 객체는 있어야합니다 적절한 라이브러리에 컴파일 및 설치 예배 규칙서. 이것은 건물과 같은 방식으로 작동합니다 일반 사용자 정의 C 기능이있는 모듈 설치 하다; 보다섹션 35.9.6. 종종 배트맨 토토 핸들러는 외부에 따라 다릅니다 실제 프로그래밍 배트맨 토토를 제공하는 라이브러리 엔진; 그렇다면 설치해야합니다.
핸들러는 명령으로 선언해야합니다
기능 만들기handler_function_name() Language_Handler를 반환합니다 처럼 '경로 대 공유-개체' 배트맨 토토 C;
특수 반환 유형Language_Handler데이터베이스 시스템을 알려줍니다 이 함수는 정의 된 것 중 하나를 반환하지 않습니다SQL데이터 유형 및 IS 직접 사용할 수 없음SQL진술.
선택적으로 배트맨 토토 핸들러는를 제공 할 수 있습니다."인라인"핸들러 기능 익명 코드 블록 실행 (do명령)이 배트맨 토토로 작성되었습니다. 만약에 인라인 처리기 기능은 배트맨 토토로 제공됩니다. 와 같은 명령으로 선언하십시오.
함수 만들기inline_function_name(내부) void를 반환합니다 처럼 '경로-공유-개체' 배트맨 토토 C;
선택적으로, 배트맨 토토 핸들러는 a를 제공 할 수 있습니다."Validator"확인하는 기능 실제로는 정확성에 대한 기능 정의입니다 실행. 유효성 검사 기능은에 의해 호출됩니다.함수 생성존재하는 경우. 경우 a 유효성 검사기 기능은 배트맨 토토에 의해 제공됩니다 와 같은 명령으로
기능 만들기validator_function_name(OID) void를 반환합니다 처럼 '경로-공유-개체' 배트맨 토토 C;
PL은 명령으로 선언해야합니다
만들기 [신뢰할 수있는] [절차] 배트맨 토토Language-Name핸들러handler_function_name[인라인inline_function_name] [Validatorvalidator_function_name];
선택적인 키워드신뢰할 수있는언어가 데이터에 대한 액세스 권한을 부여하지 않도록 지정합니다. 사용자에게는 그렇지 않다는 것입니다. 신뢰할 수있는 언어 일반 데이터베이스 사용자 (없는 사람들)를 위해 설계되었습니다 Superuser Privilege) 및 안전하게 만들 수 있습니다 기능 및 트리거 절차. PL 기능이므로 데이터베이스 서버 내부에서 실행 된신뢰할 수있는플래그 만 제공해야합니다 데이터베이스 서버에 액세스 할 수없는 배트맨 토토 내부 또는 파일 시스템. 배트맨 토토pl/pgsql, pl/tcl및pl/perl신뢰할 수있는 것으로 간주됩니다. 그만큼 언어pl/tclu, pl/perlu및pl/pythonu는 제공하도록 설계되었습니다 무제한 기능 및아님신뢰할 수있는 표시.
예제 38-1수동 설치 절차가 어떻게 작동하는지 보여줍니다 언어로pl/perl.
예 38-1. 수동 설치pl/perl
다음 명령은 데이터베이스 서버에 위치합니다 의 공유 객체 찾기pl/perl배트맨 토토 통화 처리기 기능:
함수 만들기 plperl_call_handler () Language_Handler를 반환합니다 '$ libdir/plperl'언어 c;
pl/perl인라인이 있습니다 핸들러 기능 및 유효성 검사 기능이므로 도:
함수 만들기 plperl_inline_handler (내부)는 void를 반환합니다 '$ libdir/plperl'언어 C; 기능 생성 plperl_validator (OID)는 void를 반환합니다 '$ libdir/plperl'언어 c;
명령 :
신뢰할 수있는 절차 적 배트맨 토토 생성 핸들러 plperl_call_handler 인라인 plperl_inline_handler Validator plperl_validator;
그런 다음 이전에 선언 된 기능이해야한다고 정의합니다 기능 및 트리거 절차에 대해 호출해야합니다 언어 속성은plperl.
기본값PostgreSQL설치, 핸들러pl/pgsql배트맨 토토가 구축 및 설치되었습니다 에"도서관"디렉토리; 또한pl/pgsql배트맨 토토 자체는 모든 데이터베이스에 설치됩니다. 만약에tcl지원이 핸들러로 구성됩니다 을 위한PL/TCLandpl/tclu라이브러리 디렉토리이지만 배트맨 토토 자체가 설치되지 않았습니다. 기본적으로 모든 데이터베이스. 마찬가지로,pl/perlandpl/perlu핸들러가 빌드 및 설치됩니다 Perl 지원이 구성되고pl/pythonuPython이면 핸들러가 설치됩니다 지원이 구성되지만 이러한 언어는 기본.