이 문서는 지원되지 않는 버전의 Postgre토토 사이트 추천을위한 것입니다.
당신은에 대해 같은 페이지를 보려고 할 수 있습니다4_조(배트맨 토토 사이트 추천,배트맨 토토 사이트 추천)버전 또는 위에 나열된 다른 지원되는 버전 중 하나입니다.

35.4. 질문 토토 사이트 추천 (토토 사이트 추천) 기능

토토 사이트 추천 기능 임의의 토토 사이트 추천 문을 실행합니다. 목록의 마지막 쿼리 결과를 반환합니다. 간단하게 (비 세트) 케이스, 마지막 쿼리 결과의 첫 번째 행은 다음과 같습니다. 반환. (그 점을 명심하십시오"첫 번째 열"멀티 로우 결과의 결과는 귀하가 제대로 정의되지 않습니다 사용주문.) 마지막 쿼리가 발생하면 줄을 전혀 반환하지 않으려면 널 값이 반환됩니다.

또는 토토 사이트 추천 함수는 함수의 리턴 유형을 as 지정하여 설정setof약간, 또는 선언하여반환 테이블(). 이 경우 마지막 쿼리 결과의 모든 행이 반환됩니다. 자세한 내용 아래에 나타납니다.

토토 사이트 추천 함수의 본문은 토토 사이트 추천 문의 목록이어야합니다. 세미콜론으로 분리. 마지막 진술 후 세미콜론은 다음과 같습니다 선택 과목. 함수가 반환으로 선언되지 않는 한void, 마지막 진술은 A이어야합니다.select또는 an삽입, 업데이트또는삭제반환조항

토토 사이트 추천토토 사이트 추천를 함께 포장 할 수 있습니다 함수로 정의됩니다. 게다가select쿼리, 명령에는 데이터 수정 쿼리가 포함될 수 있습니다 (삽입, 업데이트삭제), AS 다른 토토 사이트 추천 명령. (유일한 예외는 당신입니다 넣을 수 없음시작, 커밋, 롤백또는SavePoint명령토토 사이트 추천함수.) 그러나 최종 명령은 여야합니다.select또는 a반환모든 것을 반환하는 조항 함수의 리턴 유형으로 지정됩니다. 또는 당신이 있다면 동작을 수행하지만없는 토토 사이트 추천 함수를 정의하려고 반품에 유용한 값, 반환으로 정의 할 수 있습니다void. 예를 들어이 기능은 행을 제거합니다 의 부정적인 급여emp테이블 :

함수 작성 clean_emp () voids as '
    emp에서 삭제하십시오
        여기서 급여 <0;
'언어 토토 사이트 추천;

clean_emp ()를 선택하십시오.

 clean_emp
----------

(1 행)

의 구문토토 사이트 추천 생성명령은 함수 본체가 문자열로 쓰여질 것을 요구합니다. 끊임없는. 일반적으로 달러 인용문을 사용하는 것이 가장 편리합니다 (보다섹션 4.1.2.413696_13832') 및 백 슬래시 (\) (탈출 문자열 구문을 가정) 기능의 본문 (섹션 4.1.2.1).

토토 사이트 추천 함수에 대한 인수는 함수에 참조됩니다. 구문을 사용하는 신체$n: $ 1참조 첫 번째 논쟁에$ 2두 번째로, 등. 인수가 복합 유형 인 경우 도트는 표기법 (예 :$ 1.name는 익숙해 질 수 있습니다 인수의 액세스 속성. 인수 만 사용할 수 있습니다 식별자가 아닌 데이터 값으로. 예를 들어 이것은입니다 합리적인:

myTable 값에 삽입 ($ 1);

그러나 이것은 작동하지 않습니다 :

$ 1 값 (42)에 삽입;

35.4.1. 토토 사이트 추천기본 유형의 기능

가장 간단한 가능한토토 사이트 추천함수는 인수가 없으며 단순히 기본 유형을 반환합니다. 처럼정수:

함수 1 ()을 작성하십시오 ()는 정수를 $$로 반환합니다
    결과적으로 1을 선택하십시오.
$$ 언어 토토 사이트 추천;

- 문자열 리터럴에 대한 대체 구문 :
기능 one ()를 작성하여 정수를 반환합니다.
    결과적으로 1을 선택하십시오.
'언어 토토 사이트 추천;

하나를 선택하십시오 ();

 하나
-----
   1

토토 사이트 추천 내에서 열 별칭을 정의했음을 알 수 있습니다. 토토 사이트 추천 결과에 대한 본문 (이름 포함결과) 그러나이 열 별칭은 보이지 않습니다 기능 밖. 따라서 결과는 레이블이 지정됩니다ONE대신결과.

거의 정의하기 쉽습니다토토 사이트 추천기본 유형을 사용하는 기능 논쟁. 아래의 예에서, 우리가 어떻게 참조하는지 주목하십시오. 기능 내의 인수$ 1and$ 2.

토토 사이트 추천 생성 add_em (정수, 정수)은 정수를 $$로 반환합니다
    $ 1 + $ 2를 선택하십시오.
$$ 언어 토토 사이트 추천;

답변으로 add_em (1, 2)을 선택하십시오.

 답변
--------
      3

여기에 더 유용한 기능이 있습니다.이 기능은 차변에 사용될 수 있습니다. 은행 계좌 :

토토 사이트 추천 생성 tf1 (정수, 숫자)은 정수를 $$로 반환합니다
    은행 업데이트
        밸런스 설정 = 균형 - $ 2
        여기서 AccountNo = $ 1;
    선택 1;
$$ 언어 토토 사이트 추천;

사용자는이 기능을 차변 계정으로 실행할 수 있습니다 17 다음과 같이 $ 100.00 :

TF1 (17, 100.0); 선택

실제로는 더 유용한 결과를 원할 것입니다. 상수 1보다 함수에서 정의는 다음과 같습니다.

기능 생성 TF1 (정수, 숫자) 숫자를 $$로 반환합니다
    은행 업데이트
        밸런스 설정 = 균형 - $ 2
        여기서 AccountNo = $ 1;
    AccountNo = $ 1 인 은행에서 잔액을 선택하십시오.
$$ 언어 토토 사이트 추천;

균형을 조정하고 새로운 잔액을 반환합니다. 그만큼 를 사용하여 하나의 명령에서 동일한 일을 수행 할 수 있습니다.반환:

토토 사이트 추천 생성 tf1 (정수, 숫자) 숫자를 $$로 반환합니다
    은행 업데이트
        밸런스 설정 = 균형 - $ 2
        여기서 AccountNo = $ 1
    반환 균형;
$$ 언어 토토 사이트 추천;

35.4.2. 토토 사이트 추천복합재의 기능 유형

복합 유형의 인수로 기능을 작성할 때, 우리 위에서했던 것처럼 원하는 인수를 지정해야합니다. 와 함께$ 1and$ 2)와 원하는 속성 (필드) 그 주장. 예를 들어,emp직원 데이터가 포함 된 테이블입니다 따라서 각 행의 복합 유형의 이름도 테이블. 다음은 함수입니다double_salary그것은 누군가의 것을 계산합니다 급여는 두 배가된다면 :

Table Emp 만들기 (
    이름 텍스트,
    급여 숫자,
    나이 정수,
    칸막이 지점
);

EMP 값에 삽입 ( 'Bill', 4200, 45, '(2,1)');

기능을 작성하여 Double_salary (EMP)를 $$로 반환합니다
    $ 1. Salary * 2를 급여로 선택하십시오.
$$ 언어 토토 사이트 추천;

꿈으로 이름, double_salary (emp.*)를 선택하십시오
    emp에서
    여기서 emp.cubicle ~ = point '(2,1)';

 이름 | 꿈
------+-------
 빌 |  8400

구문 사용에 주목하십시오$ 1. Salary인수의 한 분야를 선택하려면 행 값. 또한 부름이 어떻게select명령 용도*테이블의 전체 현재 행을 복합재로 선택하려면 값. 테이블 행을 대안으로 만 사용하여 참조 할 수 있습니다 테이블 이름 :

꿈으로 이름, Double_salary (EMP) 이름을 선택하십시오
    emp에서
    여기서 emp.cubicle ~ = point '(2,1)';

그러나이 사용법은 쉽게 얻을 수 있기 때문에 더 이상 사용되지 않습니다. 혼란스러운.

때로는 복합 인수를 구성하는 것이 편리합니다 금속에 가치. 이것은로 수행 할 수 있습니다.Row구성. 예를 들어, 우리는 조정할 수 있습니다 기능으로 전달되는 데이터 :

꿈으로서 이름, double_salary (행 (이름, 급여*1.1, 나이, 칸막이))을 선택하십시오
    emp에서;

반환하는 함수를 빌드 할 수도 있습니다. 복합 유형. 이것은 반환하는 함수의 예입니다. 하나의emp행 :

기능 작성 new_emp ()는 emp를 $$로 반환합니다
    이름으로 '없음'을 선택하고
        급여로 1000.0,
        25 나이로
        칸막이로서 '(2,2)';
$$ 언어 토토 사이트 추천;

이 예에서는 각 속성을 지정했습니다. 일정한 가치를 지니고 있지만 어떤 계산이든 이 상수로 대체되었습니다.

토토 사이트 추천 정의에 관한 두 가지 중요한 사항을 참고하십시오.

  • 쿼리의 선택 목록 순서는 정확히 열이 테이블에 나타나는 것과 동일 복합 유형과 관련이 있습니다. (열의 이름 지정 우리는 위에 있었고 시스템과 관련이 없습니다.)

  • 당신은 표현을 일치시키기위한 표현을 형성해야합니다 복합 유형의 정의 또는 오류가 발생합니다. 이와 같이:

    오류 : EMP를 반환하라고 선언 한 함수 1 열에서 텍스트 대신 varchar를 반환합니다.
    

동일한 함수를 정의하는 다른 방법은 다음과 같습니다.

기능 작성 new_emp ()는 emp를 $$로 반환합니다
    행 ( 'None', 1000.0, 25, '(2,2)') :: emp;
$$ 언어 토토 사이트 추천;

여기 우리는 a를 썼습니다.select그 반환 올바른 복합 유형의 단일 열만. 이것은 아닙니다 이 상황에서는 정말 좋지만 편리한 대안입니다. 예를 들어 결과를 계산 해야하는 경우 경우에도 원하는 복합재를 반환하는 다른 함수를 호출함으로써 값.

우리는이 기능을 두 가지 중 하나에서 직접 호출 할 수 있습니다. 방법 :

select new_emp ();

         new_emp
-----------------------------
 (없음, 1000.0,25, "(2,2)")

선택 *에서 new_emp ();

 이름 | 급여 | 나이 | 작은 침실
------+--------+-----+-------
 없음 | 1000.0 |  25 | (2,2)

두 번째 방법은 더 자세히 설명합니다섹션 35.4.7.

복합 유형을 반환하는 함수를 사용하면 결과에서 하나의 필드 (속성) 만 원할 수 있습니다. 당신은 할 수 있습니다 다음과 같은 구문으로 수행하십시오.

select (new_emp ()). 이름;

 이름
------
 없음

파서를 유지하려면 여분의 괄호가 필요합니다. 혼란스러워. 당신이 그들없이 그것을하려고한다면, 당신은 다음과 같은 것 :

new_emp (). 이름을 선택하십시오.
오류 : "또는 그 근처의 구문 오류."
1 행 : SELECT NEW_EMP (). 이름;
                        ^

또 다른 옵션은 추출을 위해 기능 표기법을 사용하는 것입니다 속성. 이것을 설명하는 간단한 방법은 우리가 사용할 수 있다는 것입니다. 표기법속성 (표)andtable.attribute상호 교환 적으로.

select name (new_emp ());

 이름
------
 없음
- 이것은 다음과 같습니다.
- Emp.age <30;

EMP Where Age (EMP) <30에서 젊은이로 이름 (EMP)을 선택하십시오.

 어린이
----------
 샘
 앤디

팁 :기능 표기법 토토 사이트 추천의 동등성 속성 표기법을 사용하면 함수를 사용할 수 있습니다 복합 유형에서 에뮬레이션"컴퓨터 전지". 예를 들어, 이전 정의를 사용합니다 을 위한double_salary (EMP), 우리는 할 수 있습니다 쓰다

Emp.Name, Emp.Double_Salary From Emp; 선택

이것을 사용하는 응용 프로그램은 직접있을 필요가 없습니다 알고있는double_salary테이블의 실제 열. (계산을 에뮬레이션 할 수도 있습니다 보기가있는 필드.)

복합 유형을 반환하는 기능을 사용하는 또 다른 방법은 다음과 같습니다. 결과를 올바른 것을 받아들이는 다른 함수로 전달하려면 입력으로 행 유형 :

function getName (EMP) 작성 텍스트를 $$로 반환합니다
    1. 이름을 선택하십시오.
$$ 언어 토토 사이트 추천;

getName (new_emp ())을 선택하십시오.
 getName
-------
 없음
(1 행)

복합재를 반환하는 함수를 사용하는 또 다른 방법 유형은에 설명 된대로 테이블 함수라고 부릅니다.섹션 35.4.7.

35.4.3. ​​토토 사이트 추천매개 변수 이름이있는 토토 사이트 추천

토토 사이트 추천의 매개 변수에 이름을 첨부 할 수 있습니다. 예를 들어

기능 작성 tf1 (Acct_no Integer, 직불 숫자) 숫자를 $$로 반환합니다.
    은행 업데이트
        밸런스 설정 = 균형 - $ 2
        여기서 AccountNo = $ 1
    반환 균형;
$$ 언어 토토 사이트 추천;

여기서 첫 번째 매개 변수에 이름이 부여되었습니다acct_no및 두 번째 매개 변수 이름직불. 토토 사이트 추천 기능까지 그 자체로 우려됩니다.이 이름은 단지 장식 일뿐입니다. 당신은해야합니다 여전히 매개 변수를라고합니다.$ 1, $ 2등 기능 본문 내. (일부 절차 언어를 사용하면 매개 변수 이름을 사용할 수 있습니다 대신.) 그러나 매개 변수에 이름을 첨부하는 것이 유용합니다 문서화 목적. 함수에 많은 경우 매개 변수는 호출하는 동안 이름을 사용하는 것이 유용합니다. 에 설명 된대로 함수섹션 4.3.

35.4.4. 토토 사이트 추천출력 기능 매개 변수

함수의 결과를 설명하는 대체 방법은 다음과 같습니다. 로 정의하십시오.출력 매개 변수, AS 이 예에서 :

토토 사이트 추천 생성 add_em (x int, y int, out sum int)
'$ 1 + $ 2'를 선택하십시오.
언어 토토 사이트 추천;

add_em (3,7)을 선택하십시오.
 add_em
--------
     10
(1 행)

이것은 본질적으로과 다르지 않습니다.add_em표시섹션 35.4.1. 출력 매개 변수의 실제 값은 여러 반환 기능을 정의하는 편리한 방법 열. 예를 들어,

토토 사이트 추천 생성 sum_n_product (x int, y int, out sum int, out product int)
'$ 1 + $ 2, $ 1 * $ 2'로 AS
언어 토토 사이트 추천;

 sum_n_product (11,42)에서 *를 선택하십시오.
 합계 | 제품
-----+-------
  53 |     462
(1 행)

본질적으로 일어난 일은 우리가 만든 것입니다. 함수 결과를위한 익명 복합 유형. 그만큼 위의 예는와 동일한 최종 결과를 갖습니다.

sum_prod 유형 생성 (sum int, product int);

함수 sum_n_product (int, int) sum_prod를 반환합니다
'$ 1 + $ 2, $ 1 * $ 2'로 AS
언어 토토 사이트 추천;

그러나 별도의 복합 유형으로 귀찮게 할 필요는 없습니다. 정의는 종종 편리합니다. 이름이 첨부되어 있습니다 출력 매개 변수는 단순한 장식이 아니라 결정합니다 익명 복합 유형의 열 이름. (당신이 생략한다면 출력 매개 변수의 이름 인 시스템은 이름을 선택합니다. 그 자체로.)

출력 매개 변수가 포함되어 있지 않다는 점에 주목하십시오 토토 사이트 추천에서 그러한 함수를 호출 할 때 인수 목록 호출. 이건이기 때문입니다.Postgre토토 사이트 추천함수를 정의하기 위해 입력 매개 변수 만 고려합니다 서명을 호출합니다. 그것은 또한 입력만을 의미합니다 매개 변수는 목적으로 함수를 참조 할 때 중요합니다 떨어 뜨리는 것과 같은. 위의 기능을 사용하여 삭제할 수 있습니다 어느 쪽이든

드롭 토토 사이트 추천 sum_n_product (x int, y int, out sum int, out product int);
드롭 토토 사이트 추천 sum_n_product (int, int);

매개 변수는로 표시 될 수 있습니다.in( 기본),out, inout또는variadic.inout매개 변수는 둘 다 역할을합니다 입력 매개 변수 (호출 인수 목록의 일부) 및 출력 매개 변수 (결과 레코드 유형의 일부).variadic매개 변수는 입력 매개 변수이지만 다음에 설명 된대로 특별히 처리됩니다.

35.4.5. 토토 사이트 추천변수의 기능 인수

토토 사이트 추천토토 사이트 추천 일 수 있습니다 가변적 인 수의 인수를 받아들이라고 선언했습니다. 모든"선택 사항"인수가 있습니다 동일한 데이터 유형. 선택적 인수는 전달됩니다 배열로서의 기능. 토토 사이트 추천는 마킹으로 선언됩니다 마지막 매개 변수variadic; 이것 매개 변수는 배열 유형으로 선언해야합니다. 을 위한 예:

토토 사이트 추천 생성 mleast (variadic arr numeric []) 숫자를 $$로 반환합니다
    generate_subscripts ($ 1, 1) g (i)에서 min ($ 1 [i])을 선택하십시오.
$$ 언어 토토 사이트 추천;

mleast (10, -1, 5, 4.4)를 선택하십시오.
 mleast 
--------
     -1
(1 행)

효과적으로, 모든 실제 인수는variadic위치가 수집됩니다 당신이 작성한 것처럼 1 차원 배열

mleast (배열 [10, -1, 5, 4.4]);    - 작동하지 않습니다

당신은 실제로 그것을 쓸 수는 없습니다. 이 기능 정의와 일치하지 않습니다. 표시된 매개 변수variadic하나 이상의 일치 자체 유형이 아닌 요소 유형의 발생.

때때로 통과 할 수있는 것이 유용합니다. variadic 함수에 대한 이미 구성된 배열; 이것은 한 가지 변동 함수가 전달되기를 원할 때 특히 편리합니다. 배열 매개 변수에 대한 배열 매개 변수. 당신은 그렇게 할 수 있습니다 지정variadic전화에서 :

mleast (variadic array [10, -1, 5, 4.4]); 선택

이것은 토토 사이트 추천의 변수 매개 변수의 확장을 방지합니다 그 요소 유형으로 배열 인수를 허용합니다 정상적으로 일치하는 가치.variadiccan 기능의 마지막 실제 인수에만 첨부됩니다. 부르다.

지정variadic전화에서 빈 배열을 Variadic으로 전달하는 유일한 방법 토토 사이트 추천 예 :

mleast (variadic array [] :: numeric []); 선택

간단히 쓰기mleast () 선택Variadic 매개 변수가 하나 이상 일치해야하므로 작동하지 않습니다. 실제 주장. (두 번째 토토 사이트 추천를 정의 할 수 있습니다.mleast, 매개 변수가없는 경우 그러한 전화를 허용하고 싶었습니다.)

variadic에서 생성 된 배열 요소 매개 변수 매개 변수는 자신의 이름이없는 것으로 취급됩니다. 이것은 명명 된 인수 (섹션 4.3) 당신은 지정variadic. 예를 들어, 이것은 작동합니다 :

mleast (variadic arr : = 배열 ​​[10, -1, 5, 4.4]); 선택

그러나 이것들은 아닙니다 :

mleast (ARR : = 10);
mleast를 선택하십시오 (arr : = 배열 ​​[10, -1, 5, 4.4];

35.4.6. 토토 사이트 추천기본값이있는 토토 사이트 추천 인수

기능은 일부 또는 일부 또는 기본값으로 선언 할 수 있습니다. 모든 입력 인수. 기본값은 언제든지 삽입됩니다 이 기능은 실제가 충분하지 않은 실제로 호출됩니다 논쟁. 인수는 끝까지 만 생략 할 수 있기 때문입니다. 실제 인수 목록, 매개 변수의 모든 매개 변수 기본값도 기본값이 있어야합니다. (하지만 명명 된 인수 표기법의 사용은이 제한을 허용 할 수 있습니다. 긴장을 풀려면 여전히 위치 논쟁이되도록 시행됩니다. 표기법은 현명하게 작동합니다.)

예 :

토토 사이트 추천 생성 foo (a int, b int default 2, c int default 3)
int를 반환합니다
언어 토토 사이트 추천
$$로
    $ 1 + $ 2 + $ 3을 선택하십시오.
$$;

foo (10, 20, 30)를 선택하십시오.
 foo 
-----
  60
(1 줄)

foo (10, 20)를 선택하십시오.
 foo 
-----
  33
(1 줄)

foo (10)를 선택하십시오.
 foo 
-----
  15
(1 줄)

foo ()를 선택하십시오.  - 첫 번째 인수에 대한 기본값이 없으므로 실패합니다.
오류 : 함수 foo ()가 존재하지 않습니다

the=표시도 사용할 수 있습니다 핵심 단어의 장소기본값.

35.4.7. 토토 사이트 추천테이블 소스로 기능

모든 토토 사이트 추천 함수는에 사용할 수 있습니다.From쿼리 조항이지만 특히 그렇습니다 복합 유형을 반환하는 기능에 유용합니다. 함수 인 경우 기본 유형을 반환하도록 정의되며 테이블 함수는 1 열 테이블. 함수가 반환하도록 정의 된 경우 복합 유형, 테이블 함수는 각각의 열을 생성합니다. 복합 유형의 속성.

여기 예입니다.

테이블 foo (FOOD INT, FOOSUBID int, fooname 텍스트) 만들기;
foo 값에 삽입 (1, 1, 'Joe');
foo 값에 삽입 (1, 2, 'ed');
foo 값에 삽입 (2, 1, 'Mary');

function getfoo (int)를 만들기 foo를 $$로 반환합니다
    FOO에서 * FOO FOOOD = $ 1;
$$ 언어 토토 사이트 추천;

getfoo (1)에서 *, 상단 (Fooname)을 선택하여 t1;

 거품 | foosubid | Fooname | 높은
-------+----------+---------+-------
     1 |        1 | 조 | 조
(1 행)

예에서 알 수 있듯이, 우리는 기능의 결과는 마치 일반 테이블.

우리는 토토 사이트 추천에서 하나의 행만 얻었습니다. 이것은 우리가 사용하지 않았기 때문에setof. 그게 다음 섹션에서 설명합니다.

35.4.8. 토토 사이트 추천함수 반환 세트

토토 사이트 추천 함수가 반환으로 선언 될 때setof약간, 함수의 최종 쿼리는 완료로 실행되며 각각 행 출력은 결과 세트의 요소로 반환됩니다.

이 기능은 일반적으로 토토 사이트 추천를 호출 할 때 사용됩니다. 그만큼From절. 이 경우 각 행 함수에 의해 반환 된 것은 질문. 예를 들어, 해당 테이블을 가정합니다foo위와 같은 내용이 있으며, 우리는 우리입니다 말하다:

토토 사이트 추천 생성 getfoo (int)는 foo를 $$로 반환합니다
    FOO에서 * FOO FOOOD = $ 1;
$$ 언어 토토 사이트 추천;

getfoo (1)에서 *를 선택하여 t1;

그러면 우리는 다음을 얻을 것입니다 :

폼 | foosubid | Fooname
-------+----------+-------
     1 |        1 | 조
     1 |        2 | 에드
(2 줄)

열과 함께 여러 행을 반환 할 수도 있습니다. 다음과 같이 출력 매개 변수로 정의됩니다.

생성 테이블 탭 (y int, z int);
탭 값 (1, 2), (3, 4), (5, 6), (7, 8)에 삽입;

함수 작성 sum_n_product_with_tab (x int, Out Sum int, Out Out Product int)
Setof 레코드를 반환합니다
$$로
    $ 1 + Tab.y, $ 1 * Tab.y에서 탭에서 선택하십시오.
$$ 언어 토토 사이트 추천;

SOM_N_PRODUCT_WITH_TAB (10)에서 *를 선택하십시오.
 합계 | 제품
-----+-------
  11 |      10
  13 |      30
  15 |      50
  17 |      70
(4 줄)

여기서 핵심 요점은 당신이 작성해야한다는 것입니다setof record 반환함수는 단지 하나 대신 여러 행을 반환합니다. 있다면 하나의 출력 매개 변수 만 대신 해당 매개 변수 유형을 작성하십시오 의레코드.

현재, 반환 세트를 호출 할 수 있습니다 쿼리의 선택 목록. 쿼리의 각 행에 대해 그 자체로 생성되고, 반환 세트가 호출되고 함수의 각 요소마다 출력 행이 생성됩니다. 결과 세트. 그러나이 기능은 더 이상 사용되지 않습니다 향후 릴리스에서 제거 될 수 있습니다. 다음은 an입니다 예제 기능 선택 목록에서 세트를 반환합니다.

토토 사이트 추천 생성 ListChildren (텍스트)은 텍스트를 $$로 반환합니다
    부모 = $ 1 인 노드에서 이름을 선택하십시오
$$ 언어 토토 사이트 추천;

* 노드에서 *를 선택하십시오.
   이름 | 조상
----------+--------
 상단 |
 child1 | 맨 위
 child2 | 맨 위
 child3 | 맨 위
 하위 하일드 1 | child1
 subchild2 | child1
(6 줄)

ListChildren ( 'top')을 선택하십시오.
 목록
--------------
 child1
 child2
 child3
(3 줄)

노드에서 이름, ListChildren (이름)을 선택하십시오.
  이름 | 목록
--------+-------------
 상단 | child1
 상단 | child2
 상단 | child3
 child1 | 하위 하드 1
 child1 | subchild2
(5 줄)

마지막select, 아니요 출력 행이 나타납니다Child2, Child3등. 이런 일이 발생합니다ListChildren빈 세트를 반환합니다 이러한 인수의 경우 결과 행이 생성되지 않습니다.

참고 :함수의 마지막 명령 인 경우삽입, 업데이트또는삭제with반환, 그 명령은 항상 될 것입니다 함수가 아닌 경우에도 완료에 실행됩니다 로 선언 됨setof또는 호출 쿼리가 모든 결과 행을 가져 오지는 않습니다. 여분의 행 제작반환절 조용히 떨어지지 만 명령 된 테이블 수정 여전히 발생합니다 (그리고 모두 돌아 오기 전에 완료됩니다 기능).

35.4.9. 토토 사이트 추천기능 반환테이블

기능을 반환하는 것으로 선언하는 또 다른 방법이 있습니다. 구문을 사용하는 세트반환 테이블(). 이것은 하나 이상 사용하는 것과 동일합니다out매개 변수 플러스 기능을 반환으로 표시Setof Record(또는setof적절한 단일 출력 매개 변수 유형). 이것 표기법은 최근 토토 사이트 추천 표준 버전에 지정되어 있습니다. 따라서 사용하는 것보다 휴대가 가능할 수 있습니다setof.

예를 들어, 이전의 합계 및 제품 예제가 될 수 있습니다 이런 식으로 완료됩니다 :

토토 사이트 추천 생성 Sum_n_Product_with_tab (x int)
테이블 (합산, 제품 int)을 $$로 반환합니다
    $ 1 + Tab.y, $ 1 * Tab.y에서 탭에서 선택하십시오.
$$ 언어 토토 사이트 추천;

명시 적 사용이 허용되지 않습니다out또는inout매개 변수 와 함께테이블 리턴표기법 - 당신 모든 출력 열을에 넣어야합니다.테이블목록.

35.4.10. 다형성토토 사이트 추천기능

토토 사이트 추천함수 일 수 있습니다 다형성 유형을 받아들이고 반환하도록 선언Anylement, AnyArray, AnynonArrayAnyEnum. 보다섹션 35.2.5다형성에 대한 자세한 설명 기능. 다형성 기능은 다음과 같습니다.make_array두 개에서 배열을 구축합니다 임의의 데이터 유형 요소 :

토토 사이트 추천 생성 make_array (Anylement, Anylement)는 anyArray를 $$로 반환합니다
    배열을 선택하십시오 [$ 1, $ 2];
$$ 언어 토토 사이트 추천;

intarray, make_array ( 'a':: text, 'b')로 make_array (1, 2)를 선택하여 textarray;
 intarray | TextArray
----------+-----------
 1,2 | a, b

typecast의 사용에 주목하십시오'a':: text인수가 유형텍스트. 이 경우 필요합니다 인수는 단지 문자열 문자입니다. 그렇지 않으면 유형으로 취급알 수없는및 배열알 수없는유효한 유형이 아닙니다. 없이 typecast, 당신은 다음과 같은 오류를 얻을 것입니다 :

오류 : 입력 유형이 "알 수없는"이기 때문에 다형성 유형을 결정할 수 없습니다.

고정 된 다형성 논증이 허용됩니다. 반환 유형이지만 대화는 아닙니다. 예를 들어:

토토 사이트 추천 생성 IS_GREATER (Anylement, Anylement)는 부울을 $$로 반환합니다
    $ 1 $ 2를 선택하십시오.
$$ 언어 토토 사이트 추천;

IS_GREATER (1, 2)를 선택하십시오.
 is_greater
------------
 에프
(1 줄)

function invalid_func ()를 $$로 반환합니다
    선택 1;
$$ 언어 토토 사이트 추천;
오류 : 결과 데이터 유형을 결정할 수 없습니다
세부 사항 : 다형성 유형을 반환하는 함수는 하나 이상의 다형성 인수를 가져야합니다.

다형성은 출력이있는 토토 사이트 추천와 함께 사용할 수 있습니다 논쟁. 예를 들어:

기능 DUP 작성 (F1 Anylement, Out F2 Anylement, Out F3 AnyArray)
'선택 $ 1, 배열 [$ 1, $ 1]'언어 토토 사이트 추천;

* DUP에서 *를 선택하십시오 (22);
 f2 |   F3
----+-------
 22 | 22,22

다형성은 변수 토토 사이트 추천와 함께 사용할 수 있습니다. 을 위한 예:

토토 사이트 추천 생성 anyleast (variadic anyArray)는 anylement를 $$로 반환합니다
    generate_subscripts ($ 1, 1) g (i)에서 min ($ 1 [i])을 선택하십시오.
$$ 언어 토토 사이트 추천;

anyleast (10, -1, 5, 4)를 선택하십시오.
 anyleast 
---------
       -1
(1 줄)

anyleast ( 'abc':: text, 'def')를 선택하십시오.
 anyleast 
---------
 알파벳
(1 줄)

함수 concat (텍스트, variadic anyArray)를 작성하십시오 텍스트를 $$로 반환합니다
    array_to_string ($ 2, $ 1)을 선택하십시오.
$$ 언어 토토 사이트 추천;

CONCAT ( '|', 1, 4, 2)를 선택하십시오.
 콘서트 
--------
 1 | 4 | 2
(1 행)