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

42.2. PL/Tcl 함수 및 윈 토토

함수를 생성하려면PL/Tcl언어, 표준을 사용하세요PostgreSQL : 문서 : 9.6 : 사설 토토 사이트 만들기구문:

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

PL/TclU언어가 다음과 같이 지정되어야 한다는 점을 제외하면 동일합니다.pltclu.

함수 본문은 단순히 Tcl 스크립트의 일부입니다. 함수가 호출되면 윈 토토 값이 변수로 전달됩니다.$1 ... $nTcl 스크립트에. 결과는 일반적인 방식으로 Tcl 코드에서 반환됩니다.반환진술.

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

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

조항 참고엄격, null 입력 값에 대해 생각할 필요가 없도록 해줍니다. null 값이 전달되면 함수는 전혀 호출되지 않고 자동으로 null 결과를 반환합니다.

비엄격 함수에서 인수의 실제 값이 null인 경우 해당$n변수는 빈 문자열로 설정됩니다. 특정 인수가 null인지 확인하려면 다음 함수를 사용하세요.argisnull. 예를 들어 우리가 원한다고 가정해 보겠습니다.tcl_maxnull이 아닌 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도메인 유형을 반환하는 기능입니다.