이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.PostgreSQL : 문서 : 17 : 42.2. PL/스포츠 토토 결과 기능 및 인수버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

40.2. PL/Tcl 함수 및 사설 토토 사이트

함수를 생성하려면PL/Tcl언어, 표준을 사용하세요함수 생성구문:

함수 생성기능 이름 (사설 토토 사이트 유형) 반환반환 유형AS $$
    # PL/Tcl 함수 본문
$$ 언어 pltcl;

PL/TclU동일하지만, 언어는 다음과 같이 지정되어야 합니다.pltclu.

함수 본문은 단순히 Tcl 스크립트의 일부입니다. 언제 함수가 호출되면 인수 값이 다음과 같이 전달됩니다. 변수$1 ... $nTcl로 스크립트. 결과는 일반적인 Tcl 코드에서 반환됩니다. 그런데, a반환진술.

예를 들어, 두 정수 중 더 큰 값을 반환하는 함수 값은 다음과 같이 정의될 수 있습니다.

CREATE FUNCTION tcl_max(정수, 정수) $$로 정수를 반환합니다.
    if $1  $2 $1 반환
    2달러를 돌려주다
$$ 언어 pltcl STRICT;

조항 참고STRICT, 저장 null 입력 값에 대해 생각할 필요가 없습니다. null 값인 경우 전달되면 함수는 전혀 호출되지 않지만 단지 자동으로 null 결과를 반환합니다.

비엄격 함수에서 인수의 실제 값이 다음과 같은 경우 null, 해당$n변수는 빈 값으로 설정됩니다 문자열. 특정 인수가 null인지 여부를 검색하려면 다음을 사용하세요. 기능argisnull. 예를 들어 우리가 원했던 것tcl_max하나로 null이 아닌 인수를 반환하려면 null과 하나의 null이 아닌 인수를 사용하세요. null이 아닌:

CREATE FUNCTION tcl_max(정수, 정수) $$로 정수를 반환합니다.
    if [argisnull 1] 
        if [argisnull 2]  return_null 
        2달러를 돌려주다

    if [argisnull 2]  $1 반환 
    if $1  $2 $1 반환
    2달러를 돌려주다
$$ 언어 pltcl;

위에 표시된 것처럼 PL/Tcl 함수에서 null 값을 반환하려면, 실행return_null. 이것은 할 수 있습니다 기능이 엄격한지 아닌지.

복합 유형 인수는 Tcl로 함수에 전달됩니다. 배열. 배열의 요소 이름은 다음의 속성 이름입니다. 복합형. 전달된 행의 속성에 null 값이면 배열에 표시되지 않습니다. 여기는 예:

CREATE TABLE 직원(
    이름 텍스트,
    급여 정수,
    연령 정수
);

CREATE FUNCTION 초과 지불(직원) $$로 부울을 반환합니다.
    if 200000.0 < $1(급여) 
        "t"를 반환

    if $1(연령) < 30 && 100000.0 < $1(급여) 
        "t"를 반환

    "f"를 반환
$$ 언어 pltcl;

현재 복합 유형 반환은 지원되지 않습니다. 결과 값도 아니고 세트 반환도 아닙니다.

PL/Tcl현재는 그렇지 않습니다 도메인 유형을 완벽하게 지원합니다. 도메인을 동일하게 취급합니다. 기본 스칼라 유형으로. 제약이 있다는 뜻이다. 도메인과 관련된 조치는 시행되지 않습니다. 이것은 아니다 함수 인수에 대한 문제이지만 다음을 선언하면 위험합니다.PL/Tcl다음을 반환하는 함수 도메인 유형입니다.