| PostgreSQL 9.2.24 문서 | ||||
|---|---|---|---|---|
| 배트맨 토토 : 문서 : 9.2 : 절차 언어 | 위로 | 제38장. 절차적 사설 토토 사이트 | Postgre토토 사이트 : 문서 : 9.2 : PL/PG토토 사이트 -토토 사이트 절차 언어 | |
절차적 언어는 다음과 같아야 합니다."설치됨"각 데이터베이스에 사용. 그러나 데이터베이스에 설치된 절차적 사설 토토 사이트템플릿1다음에서 자동으로 사용할 수 있습니다. 이후에 생성된 모든 데이터베이스는 해당 항목 이후에 생성됩니다.템플릿1다음에 의해 복사됩니다데이터베이스 생성. 따라서 데이터베이스 관리자는 다음을 수행할 수 있습니다. 어떤 데이터베이스에서 어떤 언어를 사용할 수 있는지 결정하고 원하는 경우 기본적으로 일부 언어를 사용할 수 있도록 설정하세요.
표준 배포판과 함께 제공되는 사설 토토 사이트의 경우 실행에만 필요합니다.만들기 확장 사설 토토 사이트_이름에 현재 데이터베이스에 언어를 설치합니다. 대안적으로, 프로그램PostgreSQL다음에서 이 작업을 수행하는 데 사용할 수 있습니다. 쉘 명령줄. 예를 들어 언어를 설치하려면PL/펄데이터베이스에템플릿1, 사용:
createlang plperl template1
아래 설명된 수동 절차는 다음 경우에만 권장됩니다. 다음과 같이 패키지되지 않은 언어 설치 확장명.
수동 절차적 사설 토토 사이트 설치
절차적 언어는 5개의 데이터베이스에 설치됩니다. 이 단계는 데이터베이스 수퍼유저가 수행해야 합니다. 에서 대부분의 경우 필요한 SQL 명령은 다음과 같이 패키지되어야 합니다. 의 설치 스크립트"확장 프로그램"그러니까만들기 확장실행하는 데 사용할 수 있습니다.
언어 처리기를 위한 공유 객체는 다음과 같아야 합니다 적절한 라이브러리에 컴파일 및 설치 디렉토리. 이것은 건물과 같은 방식으로 작동합니다. 일반 사용자 정의 C 함수로 모듈 설치 그렇습니다; 참조섹션 35.9.6. 종종 사설 토토 사이트 처리기는 외부에 의존합니다. 실제 프로그래밍 사설 토토 사이트를 제공하는 라이브러리 엔진; 그렇다면 그것도 설치해야 합니다.
핸들러는 다음 명령으로 선언되어야 합니다.
함수 생성handler_function_name()
    반환 사설 토토 사이트_처리자
    그대로 '공유 객체 경로'
    사설 토토 사이트 C;
        특수 반환 유형사설 토토 사이트_핸들러데이터베이스 시스템에 다음을 알립니다. 이 함수는 정의된 것 중 하나를 반환하지 않습니다.SQL데이터 유형 및 에서 직접 사용할 수 없음SQL문장.
선택적으로 언어 핸들러는 다음을 제공할 수 있습니다."인라인"처리기 함수 익명 코드 블록을 실행합니다(DO명령)이 이 언어로 작성되었습니다. 만약에 인라인 핸들러 함수는 언어에 의해 제공됩니다. 다음과 같은 명령으로 선언하세요.
함수 생성inline_function_name(내부)
    반품 무효
    그대로 '공유 객체 경로'
    사설 토토 사이트 C;
      선택적으로 언어 핸들러는 다음을 제공할 수 있습니다."검증기"확인하는 함수 실제로 없는 정확성을 위한 함수 정의 그것을 실행합니다. 유효성 검사기 함수는 다음으로 호출됩니다.함수 생성존재하는 경우. 만약 유효성 검사기 기능은 언어에서 제공되며 이를 선언합니다. 다음과 같은 명령으로
함수 생성validator_function_name(oid)
    반품 무효
    그대로 '공유 객체 경로'
    사설 토토 사이트 C 엄격;
      마지막으로 PL은 다음 명령으로 선언되어야 합니다.
생성 [신뢰할 수 있음] [절차] 사설 토토 사이트사설 토토 사이트-이름핸들러handler_function_name [인라인inline_function_name] [검증기validator_function_name] ;
선택적 키워드신뢰할 수 있음언어가 데이터에 대한 액세스 권한을 부여하지 않음을 지정합니다. 그렇지 않으면 사용자가 가질 수 없는 것입니다. 신뢰할 수 있는 언어 일반 데이터베이스 사용자(데이터베이스가 없는 사용자)를 위해 설계되었습니다. 슈퍼유저 권한) 안전하게 생성할 수 있도록 허용합니다. 기능 및 트리거 절차. PL 기능은 데이터베이스 서버 내부에서 실행되는신뢰할 수 있음플래그는 다음에 대해서만 제공되어야 합니다. 데이터베이스 서버에 대한 접근을 허용하지 않는 언어 내부 또는 파일 시스템. 언어PL/pgSQL, PL/Tcl및PL/펄신뢰할 수 있는 것으로 간주됩니다. 는 사설 토토 사이트PL/TclU, PL/PerlU및PL/PythonU제공하도록 설계되었습니다. 무제한 기능을 제공해야 합니다.아님신뢰할 수 있는 것으로 표시됩니다.
예 38-1수동 설치 절차의 작동 방식을 보여줍니다. 언어로PL/펄.
예 38-1. 수동 설치PL/펄
다음 명령은 데이터베이스 서버에 에 대한 공유 객체를 찾으세요.PL/펄언어의 호출 핸들러 기능:
함수 생성 plperl_call_handler() 언어 핸들러 AS를 반환합니다.
    '$libdir/plperl' 언어 C;
    PL/펄인라인이 있습니다 핸들러 함수와 유효성 검사기 함수를 선언합니다. 너무:
함수 생성 plperl_inline_handler(내부) 반환 무효 AS
    '$libdir/plperl' 언어 C;
함수 생성 plperl_validator(oid)는 void AS를 반환합니다.
    '$libdir/plperl' 언어 C STRICT;
    명령어:
신뢰할 수 있는 절차적 언어 생성 plperl
    핸들러 plperl_call_handler
    인라인 plperl_inline_handler
    유효성 검사기 plperl_validator;
    그런 다음 이전에 선언된 함수가 다음과 같이 정의됩니다. 함수 및 트리거 프로시저에 대해 호출됩니다. 언어 속성은plperl.
기본적으로포스트그레SQL설치, 핸들러PL/pgSQL사설 토토 사이트가 빌드되고 설치되었습니다. 안으로"도서관"디렉토리; 게다가,PL/pgSQL언어 자체가 모든 데이터베이스에 설치되어 있습니다. 만일Tcl지원은 핸들러에서 구성됩니다. 에 대한PL/Tcl그리고PL/TclU은 다음 위치에 구축 및 설치됩니다. 라이브러리 디렉토리이지만 언어 자체는 설치되어 있지 않습니다. 기본적으로 모든 데이터베이스. 마찬가지로,PL/펄그리고PL/PerlU핸들러는 다음과 같은 경우에 빌드 및 설치됩니다. Perl 지원이 구성되었으며,PL/PythonUPython의 경우 핸들러가 설치됨 지원이 구성되어 있지만 이러한 언어는 다음에서 설치되지 않습니다. 기본값.