이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 보려고 할 수 있습니다토토 사이트 : 문서 : 17 : 40 장. 절차 언어버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

34 장. 절차 토토 베이

postgresql허용 사용자 정의 기능은 다른 토토 베이로 작성됩니다 SQL 및 C.이 다른 토토 베이는 일반적으로라고합니다.절차 토토 베이(pls). 절차로 작성된 함수의 경우 토토 베이, 데이터베이스 서버에는 어떻게 지식이 내장 지식이 없습니다. 함수의 소스 텍스트를 해석합니다. 대신, 작업은입니다 세부 사항을 알고있는 특별 핸들러에게 전달 토토 베이. 핸들러는 모든 구문 분석 작업을 수행 할 수 있으며 구문 분석, 실행 등 자체 또는"접착제"사이postgresql및 기존 구현 프로그래밍 토토 베이. 핸들러 자체는 C 토토 베이입니다 함수는 공유 객체로 컴파일되고 주문시로드됩니다. 다른 C 기능과 마찬가지로

현재 4 개의 절차 토토 베이가 있습니다 기준postgresql분포 :pl/pgsql(35 장),PL/TCL(PostgreSQL : 문서 : 8.0 : PL/무지개 토토 -무지개 토토 절차 언어),pl/perl(37 장) 및pl/python(PostgreSQL : 문서 : 8.0 : 무지개 토토/Python -Python Prossural Language). 다른 언어는 사용자가 정의 할 수 있습니다. 의 기본 새로운 절차 토토 베이 개발은45 장.

추가 절차 토토 베이가 있습니다 핵심 분포에는 포함되지 않습니다.부록 H정보가 있습니다 그들을 찾는 것.

34.1. 절차 토토 베이 설치

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

표준 배포와 함께 제공되는 토토 베이의 경우, 프로그램토토 커뮤니티 : 문서설치에 사용될 수 있습니다 세부 사항을 손으로 수행하는 대신 토토 베이. 을 위한 예, 토토 베이를 설치하려면pl/pgsql데이터베이스로Template1, 사용

Createlang plpgsql template1

아래 설명 된 수동 절차는 권장됩니다 맞춤 토토 베이 설치Createlang

매뉴얼 절차 토토 베이 설치

절차 토토 베이가 데이터베이스에 4 개로 설치됩니다. 데이터베이스 슈퍼 사용자가 수행 해야하는 단계. 그만큼Createlang프로그램을 자동화합니다1 단계.

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

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

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

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

  3. 선택적으로, 토토 베이 핸들러가 a를 제공 할 수 있습니다."Validator"없이 정확성에 대한 함수 정의를 확인합니다 실제로 실행합니다. 유효성 검사 기능이 호출됩니다 에 의해기능 생성존재하는 경우. 핸들러가 유효성있는 기능을 제공하는 경우 와 같은 명령으로 선언하십시오.

    함수 만들기validator_function_name(OID)
        void를 반환합니다
        처럼 '경로-공유-개체'
        토토 베이 C;
  4. PL은 명령으로 선언해야합니다

    만들기 [신뢰할 수있는] [절차] 토토 베이토토 베이 이름핸들러handler_function_name[Validatorvalidator_function_name];

    선택적인 키워드신뢰할 수있는NO가없는 일반 데이터베이스 사용자를 지정합니다 슈퍼업자 권한은 이것을 사용할 수 있어야합니다 함수를 만들고 절차를 트리거하는 언어. PL 기능은 데이터베이스 내부에서 실행되므로 서버,신뢰할 수있는플래그 액세스를 허용하지 않는 토토 베이에 대해서만 제공됩니다. 데이터베이스 서버 내부 또는 파일 시스템. 그만큼 토토 베이pl/pgsql, PL/TCLpl/perl신뢰할 수있는 것으로 간주됩니다. 그만큼 언어pl/tclu, pl/perlupl/pythonu설계되었습니다 무제한 기능을 제공하려면not표시하십시오 신뢰할 수 있습니다.

예제 34-1수동 설치 절차가 어떻게 작동하는지 보여줍니다 언어로pl/pgsql.

예 34-1. 수동 설치pl/pgsql

다음 명령은 데이터베이스 서버에 위치합니다 의 공유 객체 찾기pl/pgsql토토 베이의 통화 처리기 기능.

함수 만들기 plpgsql_call_handler () language_handler를 반환합니다
    '$ libdir/plpgsql'언어 c;

pl/pgsql유효성 검사기가 있습니다 기능이므로 우리는 또한 그것을 선언합니다 :

기능 작성 PLPGSQL_VALIDATOR (OID)는 void를 반환합니다
    '$ libdir/plpgsql'언어 c;

명령

신뢰할 수있는 절차 토토 베이 생성 PLPGSQL
    핸들러 plpgsql_call_handler
    Validator PLPGSQL_VALIDATOR;

그러면 이전에 선언 된 기능이해야한다고 정의합니다 기능 및 트리거 절차에 대해 호출해야합니다 언어 속성은PLPGSQL.

기본값PostgreSQL설치, 핸들러pl/pgsql토토 베이가 구축 및 설치되었습니다 에"도서관"디렉토리. 만약에tcl지원이 구성됩니다. 처리자PL/TCLandpl/tclu도 건축되었습니다 같은 위치에 설치됩니다. 마찬가지로,pl/perlandpl/perlu핸들러가 구축 및 설치되었습니다 Perl 지원이 구성된 경우pl/pythonuPython이 지원하면 설치됩니다 구성됩니다.