이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 보려고 할 수 있습니다PostgreSQL : 문서 : 17 : 토토 베이 만들기버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

사설 토토 사이트 생성

이름

사설 토토 사이트 생성 - 새 함수 정의
사설 토토 사이트 만들기이름([ftype[, ...]])
    보고rtypeas정의언어 'langname'
    [ 와 함께 (속성[, ...])]
기능 만들기이름([ftype[, ...]])
    보고rtypeasOBJ_FILE , link_symbol언어 'C'
    [ 와 함께 (속성[, ...])]

입력

이름

생성 할 함수의 이름.

ftype

함수 인수의 데이터 유형. 입력 유형은 할 수 있습니다 기본 또는 복잡한 유형이거나opaque. opaque사설 토토 사이트가 유효하지 않은 인수를 허용한다는 것을 나타냅니다 와 같은 유형char *.

rtype

반환 데이터 유형. 출력 유형이 지정 될 수 있습니다 기본 유형으로, 복잡한 유형setof타입또는opaque. 그만큼setofmodifier는 사설 토토 사이트가 세트를 반환 할 것을 나타냅니다. 단일 항목이 아닌 항목.

속성

함수에 대한 선택적인 정보, 최적화에 사용됩니다. 현재 유일한 속성 지원되는 것은iscachable. iscachable함수는 항상 동일하게 동일한 결과를 반환합니다. 입력 값 (즉, 데이터베이스 조회를 수행하지 않거나 그렇지 않으면 정보를 직접 표시하지 않으면 정보를 사용하십시오 매개 변수 목록). Optimizer 사용iscachable안전한 지 여부를 알 수 있습니다 기능의 호출을 사전 평가하십시오.

정의

함수를 정의하는 문자열; 의미는 다음과 같습니다 언어. 내부 기능 이름, 경로 일 수 있습니다 객체 파일, SQL 쿼리 또는 절차의 텍스트에 언어.

OBJ_FILE , link_symbol

이 형태의as절은입니다 동적으로 연결된 C 언어 기능에 사용됩니다 C 언어 소스 코드의 함수 이름은 동일하지 않습니다. SQL 함수의 이름으로. 문자열OBJ_FILE는 파일의 이름입니다 동적으로로드 가능한 객체를 포함하고link_symbol, 객체의 링크입니다 기호의 함수 이름과 동일합니다. C 언어 소스 코드.

langname

'C','SQL','내부' 또는 'plname', 여기서'plname' 생성 된 이름입니다 절차 언어. 보다생성 언어자세한 내용.

출력

Create

명령이 완료되면 반환됩니다 성공적으로.

설명

사설 토토 사이트 생성허용 APostgres사용자는 a에 사설 토토 사이트를 등록 할 수 있습니다 데이터 베이스. 그 후,이 사용자는 소유자로 간주됩니다 기능.

노트

의 장을 참조하십시오.postgresql 프로그래머 가이드확장 주제Postgres더 많은 기능을 통해 외부 기능 작성에 관한 정보.

use드롭 사설 토토 사이트제거하려면 사용자 정의 기능.

Postgres기능을 허용합니다 "과부하"; 즉, 동일한 이름이 여러에 사용될 수 있습니다. 뚜렷한 주장이있는 한 다른 기능 유형. 이 시설은주의해서 사용해야합니다내부및 C- 언어 사설 토토 사이트.

전체SQL92Type Syntax IS 입력 인수 및 반환 값을 허용합니다. 그러나 일부 유형 사양의 세부 사항 (예 : 정밀 필드숫자types)는 책임입니다 기본 기능 구현의 경우 조용히 있습니다 삼키기 (예 : 인식 또는 시행되지 않음)기능 만들기명령.

2내부함수는 가질 수 없습니다 링크 시간에 오류가 발생하지 않고 동일한 C 이름입니다. 얻기 위해 그 주위에 다른 C 이름을 제공하십시오 (예 : 사용하십시오. C 이름의 일부로 인수 유형). as의 as의 이름생성 기능. AS 절이 비어 있으면사설 토토 사이트 만들기C 이름을 가정합니다 함수는 SQL 이름과 동일합니다.

c-language 함수로 SQL 함수를 과부하시킬 때, 함수의 각 c- 언어 인스턴스에 별개의 이름을 부여하고, 그리고 대체 형태의를 사용하십시오.as절의 조항기능 만들기구문 to 과부하 된 SQL 기능 이름이 동적으로 연결된 객체를 올바르게합니다.

A C 사설 토토 사이트는 값 세트를 반환 할 수 없습니다.

usage

간단한 SQL 기능을 만들려면 :

사설 토토 사이트 생성 one () int4를 반환합니다
    '결과로 1 선택'으로
    언어 'SQL';
답변으로 하나를 선택하십시오;답변 
--------
      1

이 예제는 사용자 제작 공유 라이브러리. 이 특정한 일상적인 a 함수의 체크 숫자가있는 경우 숫자를 확인하고 true를 반환합니다. 매개 변수가 정확합니다. 수표에 사용하기위한 것입니다 기부금.

함수 작성 EAN_CHECKDIGIT (BPCHAR, BPCHAR) BOOL을 반환합니다
    '/usr1/proj/bray/sql/funcs.so'language 'c';

테이블 제품 생성 (
    ID char (8) 기본 키,
    eanprefix char (8) check (eanprefix ~ '[0-9] 2-[0-9] 5')
                      참조 Brandname (ean_prefix),
    eancode char (6) check (eancode ~ '[0-9] 6'),
    제약 ean check (ean_checkdigit (eanprefix, eancode)))
);

이 예제는 유형 변환을 수행하는 함수를 만듭니다 사용자 정의 유형 단지와 내부 유형 사이 가리키다. 이 기능은 동적으로로드 된 객체에 의해 구현됩니다 그것은 C 소스에서 컴파일되었습니다. 을 위한Postgres유형 변환 함수를 찾으려면 자동으로 SQL 함수는 반환 유형 및 과부하는 피할 수 없습니다. 함수 이름은입니다 두 번째 형태의를 사용하여 과부하asSQL 정의의 조항

함수 포인트 생성 (복잡한)은 포인트를 반환합니다
    '/home/bernie/pgsql/lib/complex.so', 'complex_to_point'로
    언어 'C';

함수의 C 합산은 다음과 같습니다.

포인트 * complex_to_point (complex * z)

        지점 *p;

        p = (점 *) palloc (sizeof (point));
        p- x = z- x;
        p- y = z- y;

        반환 p;

호환성

SQL92

사설 토토 사이트 만들기isPostgres언어 확장.

SQL/PSM

참고 :PSM은 영구 저장 모듈을 나타냅니다. 그것 절차 적 언어이며 원래 PSM이 1996 년 말까지 공식 표준으로 비준 될 것입니다. 1998 년 중반, 이것은 아직 일어나지 않았지만 PSM이 결국 표준이 될 것입니다.

SQL/PSM기능 만들기다음 구문 :
기능 생성이름([[in | out | inout]타입[, ...]])
     보고rtype언어 'langname'
     특별한루틴
     SQL-Statement