이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다PostgreSQL : 문서 : 17 : 40.1. 절차 토토 설치버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

38.1. 절차 토토 결과 설치

절차 토토 결과는이어야합니다."설치"각 데이터베이스가있는 곳에 사용된. 그러나 데이터베이스에 설치된 절차 토토 결과template1자동으로 사용할 수 있습니다 그 후에는 모든 데이터베이스가 생성되었습니다.template1데이터베이스 생성. 따라서 데이터베이스 관리자는 할 수 있습니다 어떤 데이터베이스에 사용 가능한지 결정하고 그가 선택한 경우 기본적으로 일부 토토 결과를 사용할 수 있도록합니다.

표준 분포와 함께 제공되는 토토 결과의 경우 실행하기에만 필요합니다생성 확대 Language_NameTO 언어를 현재 데이터베이스에 설치하십시오. 또는 프로그램PostgreSQL이 작업을 수행하는 데 사용할 수 있습니다 쉘 명령 줄. 예를 들어 토토 결과를 설치하려면pl/perl데이터베이스로template1, 사용 :

Createlang plperl template1

아래 설명 된 수동 절차는 권장됩니다 패키지되지 않은 토토 결과 설치 확장.

매뉴얼 절차 토토 결과 설치

절차 토토 결과가 데이터베이스에 5 개 이상으로 설치됩니다. 데이터베이스 슈퍼 사용자가 수행 해야하는 단계. ~ 안에 대부분의 경우 필요한 SQL 명령은 AN의 설치 스크립트"확장"생성 확대이를 실행하는 데 사용할 수 있습니다.

  1. 토토 결과 핸들러의 공유 객체는 있어야합니다 적절한 라이브러리에 컴파일 및 설치 예배 규칙서. 이것은 건물과 같은 방식으로 작동합니다 일반 사용자 정의 C 기능이있는 모듈 설치 하다; 보다섹션 35.9.6. 종종 토토 결과 핸들러는 외부에 따라 다릅니다 실제 프로그래밍 토토 결과를 제공하는 라이브러리 엔진; 그렇다면 설치해야합니다.

  2. 핸들러는 명령으로 선언해야합니다

    함수 만들기handler_function_name()
        Language_Handler를 반환합니다
        처럼 '경로 대 공유-개체'
        토토 결과 C;

    특수 반환 유형Language_Handler데이터베이스 시스템을 알려줍니다 이 함수는 정의 된 것 중 하나를 반환하지 않습니다SQL데이터 유형 및 IS 직접 사용할 수 없음SQL진술.

  3. 선택적으로, 토토 결과 핸들러는 A를 제공 할 수 있습니다"인라인"핸들러 기능 익명 코드 블록 실행 (do명령)이 토토 결과로 작성되었습니다. 만약에 인라인 처리기 기능은 토토 결과로 제공됩니다. 와 같은 명령으로 선언하십시오.

    기능 만들기inline_function_name(내부)
        void를 반환합니다
        처럼 '경로-공유-개체'
        토토 결과 C;
  4. 선택적으로 토토 결과 핸들러는 a를 제공 할 수 있습니다."Validator"확인하는 기능 실제로는 정확성에 대한 기능 정의입니다 실행. 유효성 검사 기능은에 의해 호출됩니다.함수 만들기존재하는 경우. 경우 a 유효성 검사기 기능은 토토 결과에 의해 제공됩니다 와 같은 명령으로

    함수 만들기validator_function_name(OID)
        void를 반환합니다
        처럼 '경로 대 공유-개체'
        토토 결과 C 엄격한;
  5. 마지막으로 PL은 명령으로 선언해야합니다

    만들기 [신뢰] [절차] 토토 결과토토 결과 이름핸들러handler_function_name[인라인inline_function_name]
        [Validatorvalidator_function_name];

    선택적인 키워드신뢰할 수있는언어가 데이터에 대한 액세스 권한을 부여하지 않도록 지정합니다. 사용자에게는 그렇지 않다는 것입니다. 신뢰할 수있는 언어 일반 데이터베이스 사용자 (없는 사람들)를 위해 설계되었습니다 슈퍼업자 권한) 안전하게 만들 수 있습니다 기능 및 트리거 절차. PL 기능이므로 데이터베이스 서버 내부에서 실행 된신뢰할 수있는플래그 만 제공해야합니다 데이터베이스 서버에 액세스 할 수없는 토토 결과 내부 또는 파일 시스템. 토토 결과pl/pgsql, PL/TCLpl/perl신뢰할 수있는 것으로 간주됩니다. 그만큼 언어pl/tclu, pl/perlupl/pythonu는 제공하도록 설계되었습니다 무제한 기능 및not신뢰할 수있는 표시.

예제 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이면 핸들러가 설치됩니다 지원이 구성되지만 이러한 언어는 기본.