이 문서는 지원되지 않는 Postgre토토 꽁 머니 버전에 대한 것입니다.
다음에 대한 동일한 페이지를 보고 싶을 수도 있습니다.스포츠 토토 사이트 : 문서 : 17 : 41.2. pl/pgsql의 스포츠 토토 사이트버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

40.2. 구조PL/pg토토 꽁 머니

다음에 작성된 기능PL/pg토토 꽁 머니실행하여 서버에 정의됩니다.PostgreSQL : 문서 : 9.5 : 무지개 토토 만들기명령. 이러한 명령은 일반적으로 다음과 같습니다.

CREATE FUNCTION somefunc(정수, 텍스트) RETURNS 정수
그대로 '함수 본문 텍스트'
언어 plpg토토 꽁 머니;

함수 본문은 지금까지 단순한 문자열 리터럴입니다.함수 생성걱정됩니다. 달러 인용을 사용하는 것이 도움이 되는 경우가 많습니다(참조섹션 4.1.2.4) 일반적인 작은따옴표 구문 대신 함수 본문을 작성합니다. 달러 인용이 없으면 함수 본문의 작은따옴표나 백슬래시를 두 배로 늘려 이스케이프해야 합니다. 이 장의 거의 모든 예제에서는 함수 본문에 달러로 묶인 리터럴을 사용합니다.

PL/pg토토 꽁 머니은 블록 구조의 언어입니다. 함수 본문의 전체 텍스트는 다음과 같아야 합니다.차단. 블록은 다음과 같이 정의됩니다.

[ <<라벨 ]
[선언선언 ]
시작문장END [ 라벨 ];

블록 내의 각 선언과 각 명령문은 세미콜론으로 종료됩니다. 다른 블록 내에 나타나는 블록은 뒤에 세미콜론이 있어야 합니다.END, 위에 표시된 대로; 그러나 최종END함수 본문을 결론짓는 데에는 세미콜론이 필요하지 않습니다.

팁:일반적인 실수는 바로 뒤에 세미콜론을 쓰는 것입니다.시작. 이는 올바르지 않으며 구문 오류가 발생합니다.

A 라벨에서 사용할 블록을 식별하려는 경우에만 필요합니다.종료문을 사용하거나 블록에 선언된 변수의 이름을 한정합니다. 라벨이 뒤에 제공되는 경우END, 블록 시작 부분의 레이블과 일치해야 합니다.

모든 키워드는 대소문자를 구분하지 않습니다. 식별자는 일반 토토 꽁 머니 명령에서와 마찬가지로 큰따옴표를 사용하지 않는 한 암시적으로 소문자로 변환됩니다.

댓글은 다음과 같은 방식으로 작동합니다.PL/pg토토 꽁 머니일반 토토 꽁 머니과 같은 코드입니다. 이중 대시(--)는 줄 끝까지 확장되는 주석을 시작합니다. 갑/*일치하는 항목으로 확장되는 블록 주석을 시작합니다.*/. 차단 댓글이 중첩됩니다.

블록의 명령문 섹션에 있는 모든 명령문은 다음과 같을 수 있습니다.하위 블록. 하위 블록은 논리적 그룹화에 사용되거나 변수를 작은 명령문 그룹으로 지역화하는 데 사용될 수 있습니다. 서브블록에 선언된 변수는 서브블록 기간 동안 외부 블록의 비슷한 이름의 변수를 마스크합니다. 그러나 블록의 레이블로 이름을 한정하면 외부 변수에 접근할 수 있습니다. 예를 들면:

CREATE FUNCTION somefunc() 정수를 $$로 반환합니다.
<< 외부블록 
선언
    수량 정수 := 30;
시작
    RAISE NOTICE '여기의 수량은 %입니다.', 수량;  -- 30개를 인쇄합니다.
    수량 := 50;
    --
    -- 하위 블록 생성
    --
    선언
        수량 정수 := 80;
    시작
        RAISE NOTICE '여기의 수량은 %입니다.', 수량;  -- 80을 인쇄합니다.
        RAISE NOTICE '여기의 외부 수량은 %입니다.', Outerblock.Quantity;  -- 50개를 인쇄합니다.
    끝;

    RAISE NOTICE '여기의 수량은 %입니다.', 수량;  -- 50개를 인쇄합니다.

    반품 수량;
끝;
$$ 언어 plpgsql;

참고:실제로 숨겨진 것이 있습니다"외부 블록"모든 사람의 몸을 둘러싸고PL/pg토토 꽁 머니함수. 이 블록은 함수의 매개변수(있는 경우)에 대한 선언과 다음과 같은 특수 변수를 제공합니다.발견(참조섹션 40.5.5). 외부 블록에는 함수 이름으로 레이블이 지정되어 있습니다. 이는 매개변수와 특수 변수가 함수 이름으로 한정될 수 있음을 의미합니다.

사용법을 혼동하지 않는 것이 중요합니다.시작/END문 그룹화용PL/pg토토 꽁 머니트랜잭션 제어를 위해 유사한 이름의 토토 꽁 머니 명령을 사용합니다.PL/pg토토 꽁 머니's시작/END그룹화에만 사용됩니다. 트랜잭션을 시작하거나 종료하지 않습니다. 함수와 트리거 프로시저는 항상 외부 쿼리에 의해 설정된 트랜잭션 내에서 실행됩니다. 실행할 컨텍스트가 없기 때문에 해당 트랜잭션을 시작하거나 커밋할 수 없습니다. 그러나예외절은 외부 트랜잭션에 영향을 주지 않고 롤백할 수 있는 하위 트랜잭션을 효과적으로 형성합니다. 이에 대한 자세한 내용은 다음을 참조하세요.섹션 40.6.6.