| PostgreSQL 9.2.24 문서 | ||||
|---|---|---|---|---|
| 토토 캔 : 문서 : 9.2 : 개요 | 위로 | 40장. PL/Tcl - Tcl 절차 언어 | 토토 꽁 머니 : 문서 : 9.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다음을 반환하는 함수 도메인 유형입니다.