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

35 장. 절차 토토

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

현재 4 개의 절차 토토가 있습니다 기준postgresql분포 :pl/pgsql(제 36 장),PL/TCL(PostgreSQL : 문서 : 8.1 : PL/사설 토토 -사설 토토 절차 언어),pl/perl(38 장) 및pl/python(PostgreSQL : 문서 : 8.1 : PL/토토 사이트 추천 -토토 사이트 추천 Prossural Language). 다른 언어는 사용자가 정의 할 수 있습니다. 의 기본 새로운 절차 토토 개발은46 장.

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

35.1. 절차 토토 설치

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

표준 배포와 함께 제공되는 토토의 경우, 실행하기 만하면생성 토토 La토토uage_NameTO 언어를 현재 데이터베이스에 설치하십시오. 또는 프로그램토토 사이트 순위 :이 작업을 수행하는 데 사용될 수 있습니다 쉘 명령 줄. 예를 들어 토토를 설치하려면pl/pgsql데이터베이스로Template1, 사용

Createla토토 plpgsql template1

아래 설명 된 수동 절차는 권장됩니다 맞춤 토토 설치생성 토토

매뉴얼 절차 토토 설치

절차 토토가 데이터베이스에 4 개로 설치됩니다. 데이터베이스 슈퍼 사용자가 수행 해야하는 단계. (알려진 언어생성 토토, 두 번째 및 세 번째 단계는 생략 할 수 있습니다. 그들이 자동으로 수행되기 때문입니다 필요합니다.)

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

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

    기능 만들기handler_function_name()
        La토토uage_Handler를 반환합니다
        처럼 '경로-공유-개체'
        토토 C;

    특수 반환 유형La토토uage_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표시하십시오 신뢰할 수 있습니다.

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

예 35-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이면 핸들러가 설치됩니다 지원이 구성됩니다.