이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.PostgreSQL : 문서 : 17 : 40 장. 절차 젠 토토버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

42장. 절차 사설 토토

버전 6.3 출시부터 시작하여,포스트그레절차적 정의를 지원합니다. 언어. 함수나 트리거 프로시저가 정의된 경우 절차적 언어에서 데이터베이스에는 기본 지식이 없습니다. 함수 소스 텍스트를 해석합니다. 대신 통화는 다음과 같습니다. 언어의 세부 사항을 알고 있는 핸들러에 전달됩니다. 는 핸들러 자체는 컴파일된 특수 프로그래밍 언어 함수입니다. 공유 객체에 추가하고 요청 시 로드합니다.

설치 중 절차적 사설 토토

절차적 사설 토토 설치

절차적 사설 토토는 세 가지 방식으로 데이터베이스에 설치됩니다. 단계.

  1. 언어 처리기를 위한 공유 객체는 다음과 같아야 합니다 컴파일하고 설치했습니다. 기본적으로 PL/pgSQL용 핸들러 데이터베이스 라이브러리 디렉토리에 구축되어 설치됩니다. Tcl/Tk 지원이 구성된 경우 PL/Tcl에 대한 처리기는 다음과 같습니다. 또한 동일한 위치에 구축 및 설치되었습니다.

    새로운 절차적 사설 토토(PL)에 대한 핸들러를 작성하는 것은 이 매뉴얼의 범위를 벗어납니다.

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

    함수 생성handler_function_name()는 불투명한 형식으로 반환됩니다.
            '공유 객체 경로' 사설 토토 'C';
    특수 반환 유형불투명이 함수가 수행하는 작업을 데이터베이스에 알립니다. 정의된 기본 또는 복합 유형 중 하나를 반환하지 않으며 에서 직접 사용할 수 있음SQL문장.
  3. PL은 다음 명령으로 선언되어야 합니다.

    [신뢰할 수 있는] 절차적 사설 토토 생성'사설 토토-이름'
            핸들러handler_function_nameLANCOMPILER '설명';
    
    
    선택적 키워드신뢰할 수 있음수퍼유저 권한이 없는 일반 데이터베이스 사용자인지 여부를 알려줍니다. 이 언어를 사용하여 함수를 만들고 프로시저를 트리거할 수 있습니다. PL 기능은 데이터베이스 백엔드 내부에서 실행되므로 액세스할 수 없는 언어에만 사용해야 합니다. 데이터베이스 백엔드 내부 또는 파일 시스템. 언어 PL/pgSQL 및 PL/Tcl은 신뢰할 수 있는 것으로 알려져 있습니다.

  1. 다음 명령은 데이터베이스에 데이터를 찾을 위치를 알려줍니다. PL/pgSQL 언어 호출 핸들러에 대한 공유 객체 기능.

    CREATE FUNCTION plpgsql_call_handler ()는 OPAQUE AS를 반환합니다.
            '/usr/local/pgsql/lib/plpgsql.so' LANGUAGE 'C';
  2. 명령

    신뢰할 수 있는 절차적 언어 'plpgsql' 생성
            핸들러 plpgsql_call_handler
            LANCOMPILER 'PL/pgSQL';

    그런 다음 이전에 선언된 호출 핸들러를 정의합니다. 함수 및 트리거에 대해 함수를 호출해야 합니다. 언어 속성이 'plpgsql'인 프로시저입니다.

    PL 핸들러 함수에는 다음과 같은 특수 호출 인터페이스가 있습니다. 일반 C 언어 함수와 다릅니다. 중 하나 핸들러에 제공된 인수는의 객체 ID입니다.pg_proc테이블 항목 실행되어야 하는 함수. 핸들러가 검사합니다 함수 호출을 분석하기 위한 다양한 시스템 카탈로그 인수와 반환 데이터 유형입니다. 의 원본 텍스트 함수 본문은 prosrc 속성에서 찾을 수 있습니다.pg_proc. 이로 인해 C와 달리 언어 함수, PL 함수는 SQL처럼 오버로드될 수 있습니다. 언어 기능. 여러 개의 서로 다른 PL이 있을 수 있습니다. 호출하는 동안 동일한 함수 이름을 갖는 함수 주장이 다릅니다.

    에 정의된 절차적 사설 토토템플릿1데이터베이스가 자동으로 정의됩니다. 이후에 생성된 모든 데이터베이스에서. 그래서 데이터베이스 관리자는 어떤 사설 토토를 사용할 수 있는지 결정할 수 있습니다. 기본값.