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

38.2. 젠 토토/TCL 기능 및 인수

에서 함수를 생성하려면젠 토토/TCL언어, 표준을 사용하십시오 통사론:

함수 만들기funcName(Argument-Types) 반환return-typeas '
    # 젠 토토/tcl 기능 본문
'언어 젠 토토tcl;

젠 토토/tclu는 제외하고 동일합니다 언어는로 지정되어야한다.젠 토토tclu.

함수의 본문은 단순히 TCL 스크립트의 조각입니다. 언제 함수를 호출하고 인수 값은 다음과 같이 전달됩니다. 변수$ 1 ... $ntcl 스크립트. 결과는 평소의 TCL 코드에서 반환됩니다. 방법, Areturn진술.

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

함수 만들기 tcl_max (정수, 정수) 정수를 반환합니다.
    if $ 1 $ 2 return $ 1
    $ 2를 반환합니다
'언어 pltcl 엄격한;

조항 참고엄격한널 입력 값에 대해 생각하지 않아도 : 널 값인 경우 전달되면 기능은 전혀 호출되지 않지만 널 결과를 자동으로 반환하십시오.

인수의 실제 값이 널, 해당$n변수가 비어 있습니다 끈. 특정 인수가 무효인지 여부를 감지하려면 사용하십시오. 기능ArgisNull. 예를 들어, 가정하십시오 우리가 원했던tcl_max하나와 함께 무시 무시한 인수를 반환하기위한 NULL과 하나의 unnull 인수, 널보다는 :

함수 만들기 tcl_max (정수, 정수) 정수를 반환합니다.
    [ArgisNull 1] 인 경우
        if [ArgisNull 2] return_null
        $ 2를 반환합니다

    if [ArgisNull 2] return $ 1
    if $ 1 $ 2 return $ 1
    $ 2를 반환합니다
'언어 pltcl;

위와 같이, 젠 토토/tcl 함수에서 널 값을 반환하려면, 실행하다return_null. 이것은 할 수 있습니다 기능이 엄격한 지 여부.

복합 유형 인수는 TCL과 같은 함수로 전달됩니다 배열. 배열의 요소 이름은 속성 이름입니다. 복합 유형. 전달 된 행의 속성이 NULL 값은 배열에 나타나지 않습니다. 여기에 있습니다 예:

테이블 직원 생성 (
    이름 텍스트,
    급여 정수,
    시대 정수
);

함수 초과 지불 (직원) Boolean을 '로 반환합니다.
    if 200000.0 <$ 1 (급여) 
        "T"반환

    if $ 1 (Age) <30 && 100000.0 <$ 1 (Salary) 
        "T"반환

    "F"반환
'언어 pltcl;

현재 복합 유형을 반환하는 것에 대한 지원은 없습니다 결과 가치.