이 문서는 지원되지 않는 버전의 PostgreSQL 용입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다PostgreSQL : 문서 : 17 : 43.1. pl/배트맨 토토 함수 및 인수버전 또는 위에 나열된 다른 지원되는 버전 중 하나입니다.

43.1. pl/스포츠 토토 결과 함수 및 인수

pl/스포츠 토토 결과 언어에서 함수를 만들려면 표준을 사용하십시오함수 만들기구문 :

기능 만들기funcName(Argument-types) 반환return-type$$

함수의 본문은 일반적인 스포츠 토토 결과 코드입니다. 실제로, PL/스포츠 토토 결과 접착제 코드는 스포츠 토토 결과 서브 루틴 안에 랩핑됩니다.

pl/스포츠 토토 결과도 호출 된 익명 코드 블록도 지원합니다.토토 꽁 머니 : 문서 : 9.6 : do진술 :

do $$

익명 코드 블록은 인수를받지 않으며, 반환 할 수있는 값은 폐기됩니다. 그렇지 않으면 기능처럼 동작합니다.

참고 :명명 된 중첩 서브 루틴의 사용은 스포츠 토토 결과에서 위험합니다. PL/스포츠 토토 결과 기능은 서브 루틴에 래핑되므로 하나 안에 놓은 서브 루틴이라는 이름이 둥지를지게됩니다.가변 "%s"는 공유를 유지하지 않습니다and가변 "%s"를 사용할 수 없습니다in스포츠 토토 결과diagMan Page 또는 인터넷 검색"Perl Nested named Subroutine".

의 구문함수 만들기명령은 함수 본문을 문자열 상수로 작성해야합니다. 일반적으로 달러 인용문을 사용하는 것이 가장 편리합니다 (참조섹션 4.1.2.411646_11717e '', 단일 견적 마크를 두 배로 늘려야합니다 (') 및 백 슬래시 (\) 함수 본문에 사용됩니다 (참조섹션 4.1.2.1).

인수와 결과는 다른 Perl Subroutine에서와 같이 처리됩니다. 인수는 전달됩니다.@_, 결과 값은로 반환됩니다.return또는 기능에서 마지막 표현식이 평가 된대로.

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

함수 생성 스포츠 토토 결과_max (정수, 정수)는 정수를 $$로 반환합니다

참고 :인수는 데이터베이스의 인코딩에서 PL/PERL 내부 사용을 위해 UTF-8로 변환 한 다음 UTF-8에서 반환시 데이터베이스 인코딩으로 변환됩니다..

SQL NULL 값이 함수로 전달되면 인수 값이로 나타납니다."정의되지 않은"Perl. 위의 함수 정의는 Null 입력과는 잘 어울리지 않습니다 (실제로는 제로 인 것처럼 작용할 것입니다).엄격한PostgreSQL더 합리적인 일을하십시오 : 널 값이 전달되면 함수는 전혀 호출되지 않지만 자동으로 널 결과를 반환합니다. 또는 기능 본문에서 정의되지 않은 입력을 확인할 수 있습니다.스포츠 토토 결과_max널 값이 아닌 널리 인수를 반환하기 위해 하나의 null과 하나의 unnull 인수가 있습니다.

함수 생성 스포츠 토토 결과_max (정수, 정수)는 정수를 $$로 반환합니다

위와 같이, pl/스포츠 토토 결과 함수에서 SQL NULL 값을 반환하려면 정의되지 않은 값을 반환하십시오. 기능이 엄격한 지 여부에 관계없이 수행 할 수 있습니다.

참조가 아닌 함수 인수의 모든 것은 문자열이며 표준에있는PostgreSQL관련 데이터 유형의 외부 텍스트 표현. 일반 숫자 또는 텍스트 유형의 경우 스포츠 토토 결과은 옳은 일을하고 프로그래머는 일반적으로 걱정할 필요가 없습니다.​​decode_bytea함수를 사용하여 유형의 인수를 변환 할 수 있습니다BYTEA에스코핑 된 이진으로

마찬가지로 값이 다시 전달되었습니다PostgreSQL외부 텍스트 표현 형식이어야합니다. 예를 들어,encode_bytea함수는 유형의 반환 값에 대한 이진 데이터를 피하는 데 사용될 수 있습니다BYTEA.

스포츠 토토 결과이 반환 할 수 있습니다PostgreSQL펄 어레이에 대한 참조로 배열. 예는 다음과 같습니다.

함수 생성 또는 교체 returns_array ()

스포츠 토토 결과 PassesPostgreSQL축복받은 배열postgresql :: inserver :: array개체. 이 객체는 배열 참조 또는 문자열로 취급 될 수 있으며,로 작성된 스포츠 토토 결과 코드와 뒤로 호환 할 수 있습니다.PostgreSQL실행하려면 9.1 미만의 버전. 예를 들어:

함수 생성 또는 교체 concat_array_elements (text []) 텍스트를 $$로 반환합니다

참고 :다차원 배열은 모든 스포츠 토토 결과 프로그래머에게 공통적 인 방식으로 저 차원 참조에 대한 참조로 표시됩니다.

복합 유형 인수는 해시에 대한 참조로 함수로 전달됩니다. 해시의 키는 복합 유형의 속성 이름입니다.

테이블 직원 만들기 (

PL/스포츠 토토 결과 함수는 동일한 접근 방식을 사용하여 복합 유형 결과를 반환 할 수 있습니다. 필요한 속성이있는 해시에 대한 참조를 반환합니다. 예를 들어:

타입 타입 testrow스포츠 토토 결과 (f1 Integer, F2 Text, F3 Text);

해시에 존재하지 않는 선언 된 결과 데이터 유형의 모든 열은 널 값으로 반환됩니다.

pl/스포츠 토토 결과 함수는 스칼라 또는 복합 유형 세트를 반환 할 수도 있습니다. 일반적으로 시작 시간을 높이고 메모리에서 전체 결과 세트를 대기하는 것을 막기 위해 한 번에 하나씩 행을 반환하고 싶을 것입니다.return_next아래 그림과 같이. 마지막으로return_next, 당신은 둘 중 하나를 넣어야합니다return또는 (더 나은)return undef.

함수 생성 또는 교체 perl_set_int (int)

작은 결과 세트의 경우 스칼라, 배열 참조 또는 간단한 유형, 배열 유형 및 복합 유형에 대한 해시에 대한 참조를 포함하는 배열에 대한 참조를 반환 할 수 있습니다. 다음은 전체 결과 세트를 배열 참조로 반환하는 간단한 예입니다.

함수 생성 또는 교체 perl_set_int (int) 정수를 $$로 반환합니다.

사용하려면엄격한Pragma 코드가 포함 된 몇 가지 옵션이 있습니다. 임시 글로벌 사용을 위해set pl스포츠 토토 결과.use_strict참. 이것은의 후속 편집에 영향을 미칩니다.pl/스포츠 토토 결과함수이지만 현재 세션에서 이미 컴파일되지 않은 함수는 없습니다. 영구적 인 글로벌 사용을 위해 설정할 수 있습니다pl스포츠 토토 결과.use_stricttrue in thepostgresql.conf파일.

특정 기능에서 영구적으로 사용하려면 간단히 말할 수 있습니다.

Strict 사용;

기능 본문의 상단에 있습니다.

the기능Pragma도 제공합니다use스포츠 토토 결과이 버전 5.10.0 이상인 경우.