윈 토토 9.2.24 문서 | ||||
---|---|---|---|---|
Postgre범퍼카 토토 : 문서 : 9.2 : PL/PG범퍼카 토토의 구조 | up | 39 장.pl/pgsql-SQL절차 언어 | 다음 |
블록에 사용 된 모든 변수는for루프for커서 위에 반복되는 루프
pl/pgsql변수가 가질 수 있습니다정수,Varchar및char.
변수 선언의 몇 가지 예는 다음과 같습니다.
user_id 정수;
변수 선언의 일반적인 구문은 다음과 같습니다.
이름[Constant]type[Collatecollation_name ] [NOT NULL] [기본값 | : =표현 ];
the기본값조항, 주어진 경우,기본값조항SQL널 값. 그만큼Constant옵션은 변수가 존재하는 것을 방지합니다Collate옵션을 사용할 수있는 콜레이션을 지정합니다섹션). 만약에NOT NULL지정되어 있습니다.NOT NULL
변수의 기본값이 평가되고 할당됩니다.now ()유형 변수타임 스탬프변수가 시간을 갖도록합니다
예 :
수량 정수 기본값 32;
함수로 전달 된 매개 변수는$ 1,$ 2등. 선택적으로, 별명을 선언 할 수 있습니다$n가독성 향상에 대한 매개 변수 이름. 별칭 또는
별칭을 만드는 방법에는 두 가지가 있습니다. 선호하는 방법은기능 생성명령, 예 :
함수 생성 sales_tax (subtotal real)는 real을 $$로 반환합니다
다른 방법으로, 이전에 사용할 수있는 유일한 방법PostgreSQL8.0은 다음과 같습니다
이름alias for $n;
이 스타일의 동일한 예는 다음과 같습니다.
함수 생성 sales_tax (real)는 real을 $$로 반환합니다
참고 :이 두 예는 완벽하지 않습니다subtotalsales_tax.subtotal그러나 두 번째 경우subtotal자격을 갖추 수 있습니다
더 많은 예 :
기능 기기 만들기 (Varchar, Integer)는 정수를 $$로 반환합니다
언제pl/pgsql함수는입니다$nJust의 이름 및 선택적 별칭
함수 sales_tax (subtotal real, out tax real)를 $$로 만듭니다
우리가 생략됨에주의Retors Real- 우리는 그것을 포함시킬 수 있었지만 중복 될 것입니다.
출력 매개 변수는 다중 반환시 가장 유용합니다
함수 생성 Sum_n_Product (x int, y int, out sum int, out prod int) $$
에서 논의 된대로섹션 35.4.4,반환조항이 제공되며 말해야합니다반환.
선언하는 또 다른 방법pl/pgsql함수는반환 테이블, 예 :
함수 생성 extended_sales (p_itemno int)
이것은 하나 이상을 선언하는 것과 정확히 동일합니다out매개 변수 및 지정returns setofSOMENTYPE.
반환 유형의시기pl/pgsql함수는 a로 선언됩니다Anylement,AnyArray,AnynonArray,AnyEnum또는AnyRange), 특별 매개 변수$ 0생성됩니다. 데이터 유형은 실제입니다섹션). 이를 통해 기능이 실제 액세스 할 수 있습니다섹션.$ 0는 null로 초기화됩니다$ 0alias도 제공 할 수 있습니다. 을 위한+운영자 :
함수 생성 add_three_values (v1 anylement, v2 anylement, v3 anylement)
하나 이상의 출력을 선언함으로써 동일한 효과를 얻을 수 있습니다.$ 0매개 변수는 사용되지 않습니다. 출력
함수 생성 add_three_values (v1 anylement, v2 anylement, v3 anylement,
가변%유형
%유형a의 데이터 유형을 제공합니다user_idin사용자테이블. 변수를 선언합니다users.user_id당신은 다음 :
user_id users.user_id%유형;
사용하여%유형당신은 필요하지 않습니다user_idFrom정수toReal), 당신은 할 수 있습니다
%유형21802_22006%유형함수의 인수 또는 결과에
이름 table_name%RowType;이름 composite_type_name;
복합 유형의 변수를 a라고합니다.Row변수 (또는Row-Type변수). 이러한 변수는 aselect또는for쿼리 Query의 열면 쿼리 결과Rowvar.field.
행 변수는table_name%RowType표기법; 또는 선언 할 수 있습니다윈 토토쓰기 여부%RowType하지만%RowType더 많습니다
함수의 매개 변수는 복합 유형 일 수 있습니다 (완료$n행 변수가되고 필드를 선택할 수 있습니다.$ 1.user_id.
테이블 행의 사용자 정의 열만 액세스 할 수 있습니다.char (n).
복합 유형을 사용하는 예는 다음과 같습니다.표 1and표 2기존 테이블은 최소한 언급 된 필드를 가지고 있습니다.
함수 생성 merge_fields (t_row table1)는 텍스트를 $$로 반환합니다
이름레코드;
레코드 변수는 행 유형 변수와 유사하지만 그것들은 그것들입니다select또는for명령.
참고레코드는 실제 데이터가 아닙니다PL/PGSQL함수가 선언되었습니다레코드, 이것은 그다지 아닙니다레코드실제 구조는
apl/pgsql함수PostgreSQL : 문서 : 9.2 : 사설 토토 사이트 Support. Collation이있는 경우
함수 만들기 Less_than (텍스트, B 텍스트) Boolean을 $$로 반환합니다.
첫 번째 사용Less_than
의 공통 콜레이션을 사용합니다Text_field_1및Text_field_2비교를 위해CCollation.
또한 식별 된 협업은 또한
함수 만들기 Less_than (텍스트, B 텍스트) Boolean을 $$로 반환합니다.
Collatable 데이터 유형의 매개 변수가없는 경우
Collatable 데이터 유형의 로컬 변수는Collate선언의 옵션
선언
이 옵션은 그렇지 않으면 Collation을 대체합니다
물론 명시 적Collate조항이 원하는 경우 함수 내부에 쓸 수 있습니다.
함수 만들기 Less_than_C (a 텍스트, b 텍스트) Boolean을 $$로 반환합니다.
이것은 테이블과 관련된 콜라이트를 무시합니다