이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다PostgreSQL : 문서 : 17 : 41.12. 토토 베이/PGSQL에서 개발을위한 팁버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

38.11. 개발을위한 팁배트맨 토토/pgsql

개발하는 좋은 방법배트맨 토토/pgsql는 귀하의 텍스트 편집기를 사용하는 것입니다 기능을 만들기위한 선택과 다른 창에서PSQL로드하고 테스트합니다 기능. 이런 식으로하고 있다면 좋은 생각입니다. 를 사용하여 함수 작성생성 또는 교체 기능. 그렇게하면 파일을 다시로드하여 업데이트 할 수 있습니다. 함수 정의. 예를 들어:

함수 testfunc (정수)를 작성하거나 교체하십시오. 정수를 $$로 반환합니다
          .... ....
$$ 언어 배트맨 토토pgsql;

실행 중PSQL, 당신은 할 수 있습니다 이러한 기능 정의 파일을 다음과 같이로드하거나 다시로드하십시오.

\ i filename.sql

그런 다음 즉시 SQL 명령을 발행하여 테스트하십시오 기능.

개발하는 또 다른 좋은 방법배트맨 토토/pgsqlGUI 데이터베이스 액세스 도구가 있습니다 그것은 절차 적 언어로 발전을 촉진합니다. 하나 도구와 같은 예는pgadmin, 다른 것이 존재하지만. 이 도구 종종 단일 따옴표를 피하는 것과 같은 편리한 기능을 제공합니다 기능을 쉽게 재현하고 디버그하는 기능을 수행 할 수 있습니다.

38.11.1. 견적 처리 점수

A의 코드배트맨 토토/pgsql함수는에 지정되어 있습니다.생성 기능문자열 문자로서. 문자열을 쓰면 주변의 단일 따옴표와 함께 평범한 방법으로 문자 그대로, 그러면 기능 본문 내부의 단일 인용문은 두 배; 마찬가지로 모든 백 슬래시는 두 배가되어야합니다 (가정합니다 탈출 문자열 구문이 사용됩니다). 두 배의 인용문은 기껏해야합니다 지루하고 더 복잡한 경우 코드는 쉽게 찾을 수 있기 때문에 이해할 수 없습니다 자신은 6 개 이상의 인접한 견적 마크가 필요합니다. 대신 기능 본문을 A로 작성하는 것이 좋습니다."Dollar-Quoted"문자열 리터럴 (참조섹션 4.1.2.2). 달러 크기의 접근 방식에서는 두 배가되지 않습니다 모든 견적 마크이지만 대신 다른 것을 선택하도록주의하십시오. 필요한 각 레벨의 중첩에 대한 달러 크기의 구분 기호. 예를 들어,를 쓸 수 있습니다.생성 기능명령 AS :

함수 testfunc (정수)를 만들거나 교체하십시오. 정수를 $ proc $로 반환합니다
          .... ....
$ proc $ 언어 배트맨 토토pgsql;

이 내에서는 간단한 리터럴에 인용 표시를 사용할 수 있습니다. SQL 명령의 문자열 및$$TO SQL 명령의 조각을 문자열. 포함 된 텍스트를 인용 해야하는 경우$$, 당신은 사용할 수 있습니다$ Q $, 등.

다음 차트는 쓸 때해야 할 일을 보여줍니다. 달러 인용문이없는 견적 마크. 때 유용 할 수 있습니다 사전 도구 인용 코드를 더 많은 것으로 변환합니다 이해할 수 있는.

1 인용 표시

함수 본문을 시작하고 끝내려면 :

함수 만들기 foo ()는 정수를 다시 반환합니다.
          .... ....
'언어 배트맨 토토pgsql;

단일 인용 기능 본문 내의 어느 곳에서나 인용 점수필수쌍으로 나타납니다.

2 인용 표시

함수 본문 내부의 문자열 리터럴 예:

a_output : = ''blah '';
f_name = ''foobar ''; 사용자 중에서 *를 선택하십시오.

달러 크기의 접근 방식에서는 다음과 같이 씁니다.

a_output : = 'blah';
f_name = 'foobar'; 사용자 중에서 *를 선택하십시오.

정확히배트맨 토토/pgsqlParser는 어느 쪽이든 볼 수 있습니다 사례.

4 인용 표시

문자열에 단일 따옴표가 필요할 때 기능 본문 내부의 상수 (예 :

a_output : = a_output || ``그리고``foobar '' ''and xyz ''와 같은 이름.

실제로 값이 추가되었습니다a_output및 'foobar'및 xyz와 같은 이름.

달러 크기의 접근 방식에서는 다음과 같이 씁니다.

a_output : = a_output || $$ 및 'foobar'및 xyz $$와 같은 이름

주위에 1 달러짜리 구분이 구분되는 경우 조심하십시오 이것은 단지 아닙니다$$.

6 인용 표시

내부 문자열의 단일 따옴표가 기능 본체는 그 문자열의 끝에 인접 해 있습니다. 상수, 예 :

a_output : = a_output || ``그리고``foobar '' '' ''과 같은 이름

값이 첨부a_output그런 다음 :그리고 'foobar'와 같은 이름.

달러 크기의 접근 방식에서 이것은 다음과 같습니다.

a_output : = a_output || $$ 및 'foobar'$$와 같은 이름
10 인용 표시

문자열에 두 개의 단일 따옴표를 원할 때 상수 (8 인용 점수를 차지하는)와 이것 해당 문자열의 끝에 인접 해 있습니다 (2). 당신은 아마 당신이 글을 쓰는 경우에만 필요할 것입니다. 와 같이 다른 기능을 생성하는 함수예제 38-6. 예를 들어:

a_output : = a_output || ''v_ ''|| 
    referrer_keys.kind || '' 좋다 '''''''''' 
    || referrer_keys.key_string || '' '' '' '' '' '' ' 
    그런 다음`` '' '' '||를 반환하십시오 referrer_keys.referrer_type 
    || '' '' '';; 끝 If; '';

a_output그런 다음 :

if v _... '' '...' '````'... ''; 끝 If;

달러 크기의 접근 방식에서 이것은 다음과 같습니다.

a_output : = a_output || V _ $$ || 인 경우 $$ referrer_keys.kind || $$와 같은 '$$
    || referrer_keys.key_string || $$ '
    그런 다음 '$$ ||를 반환하십시오 referrer_keys.referrer_type 
    || $$ '; 끝 If; $$;

우리가 단일 견적 자국 만 넣을 필요가 있다고 가정합니다. 안으로a_output사용하기 전에 다시 인용해야합니다.