| 윈 토토 : 문서 : 9.4 : 윈 토토 | |||
|---|---|---|---|
| 윈 토토 : 문서 : 9.4 : 절차 언어 | 윈 토토 : 문서 : 9.4 : 절차 언어 | 39장. 절차적 배트맨 토토 | 와이즈 토토 : 문서 : 9.4 : PL/PGSQL -SQL 절차 언어 |
절차적 언어는 다음과 같아야 합니다."설치됨"사용할 각 데이터베이스에 저장합니다. 그러나 데이터베이스에 설치된 절차적 배트맨 토토템플릿1다음에 생성된 모든 데이터베이스에서 자동으로 사용할 수 있습니다.템플릿1다음에 의해 복사됩니다데이터베이스 생성. 따라서 데이터베이스 관리자는 어떤 데이터베이스에서 어떤 배트맨 토토를 사용할 수 있는지 결정할 수 있으며 원하는 경우 기본적으로 일부 배트맨 토토를 사용 가능하게 설정할 수 있습니다.
표준 배포판과 함께 제공되는 배트맨 토토의 경우 실행만 필요합니다확장 프로그램 만들기 배트맨 토토_이름현재 데이터베이스에 언어를 설치합니다. 또는 프로그램PostgreSQL셸 명령줄에서 이 작업을 수행하는 데 사용할 수 있습니다. 예를 들어 배트맨 토토를 설치하려면PL/펄데이터베이스에템플릿1, 사용:
createlang plperl template1
아래 설명된 수동 절차는 확장 기능으로 패키지되지 않은 배트맨 토토를 설치하는 경우에만 권장됩니다.
수동 절차적 배트맨 토토 설치
절차적 언어는 데이터베이스 슈퍼유저가 수행해야 하는 5단계로 데이터베이스에 설치됩니다. 대부분의 경우 필요한 SQL 명령은 설치 스크립트로 패키지되어야 합니다."확장 프로그램"그러니까확장 프로그램 만들기실행하는 데 사용할 수 있습니다.
배트맨 토토 핸들러의 공유 객체는 컴파일되어 적절한 라이브러리 디렉토리에 설치되어야 합니다. 이는 일반 사용자 정의 C 함수를 사용하여 모듈을 구축하고 설치하는 것과 동일한 방식으로 작동합니다. 보다섹션 35.9.6. 종종 배트맨 토토 처리기는 실제 프로그래밍 배트맨 토토 엔진을 제공하는 외부 라이브러리에 의존합니다. 그렇다면 그것도 설치해야 합니다.
핸들러는 다음 명령으로 선언되어야 합니다.
함수 생성handler_function_name()
반환 배트맨 토토_처리자
그대로 '공유 객체 경로'
배트맨 토토 C;
특수 반환 유형배트맨 토토_처리자이 함수는 정의된 함수 중 하나를 반환하지 않음을 데이터베이스 시스템에 알립니다.SQL데이터 유형이며 다음에서 직접 사용할 수 없습니다.SQL문장.
선택적으로 언어 핸들러는 다음을 제공할 수 있습니다."인라인"익명 코드 블록을 실행하는 핸들러 함수(젠 토토 : 문서 : 9.4 : 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무제한 기능을 제공하도록 설계되었으며 반드시 그래야 합니다아님신뢰할 수 있는 것으로 표시됩니다.
예 39-1수동 설치 절차가 언어에서 어떻게 작동하는지 보여줍니다.PL/펄.
예 39-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.
기본적으로PostgreSQL설치, 핸들러PL/pgSQL언어가 빌드되어 다음에 설치됩니다."도서관"디렉토리; 게다가,PL/pgSQL언어 자체가 모든 데이터베이스에 설치되어 있습니다. 만일Tcl지원은 다음에 대한 핸들러에서 구성됩니다.PL/Tcl그리고PL/TclU는 라이브러리 디렉토리에 구축되어 설치되지만 언어 자체는 기본적으로 어떤 데이터베이스에도 설치되지 않습니다. 마찬가지로,PL/펄그리고PL/PerlUPerl 지원이 구성된 경우 핸들러가 빌드 및 설치되며,PL/PythonUPython 지원이 구성된 경우 처리기가 설치되지만 이러한 언어는 기본적으로 설치되지 않습니다.
| 윈 토토 : 문서 : 9.4 : 절차 언어 | 윈 토토 : 문서 : 9.4 : 윈 토토 9.4.26 문서화 | 와이즈 토토 : 문서 : 9.4 : PL/PGSQL -SQL 절차 언어 |
| 절차적 언어 | 윈 토토 : 문서 : 9.4 : 절차 언어 | PL/pgSQL - SQL절차적 언어 |