개발하는 좋은 방법와이즈 토토/pgsql는 귀하의 텍스트 편집기를 사용하는 것입니다 기능을 만들기위한 선택과 다른 창에서PSQL로드하고 테스트합니다 기능. 이런 식으로하고 있다면 좋은 생각입니다. 를 사용하여 함수 작성생성 또는 교체 기능. 그렇게하면 파일을 다시로드하여 업데이트 할 수 있습니다. 함수 정의. 예를 들어:
함수 testfunc (정수) 생성 또는 교체 (정수) 정수를 $$로 반환합니다 .... .... $$ 언어 와이즈 토토pgsql;
실행 중PSQL, 가능합니다 이러한 함수 정의 파일을로드 또는 다시로드하여
\ i filename.sql
그런 다음 즉시 SQL 명령을 발행하여 테스트하십시오 기능.
개발하는 또 다른 좋은 방법와이즈 토토/pgsqlGUI 데이터베이스 액세스 도구가 있습니다 그것은 절차 적 언어로 발전을 촉진합니다. 하나 도구와 같은 예는pgaccess, 다른 것이 존재하지만. 이 도구 종종 단일 따옴표를 피하는 것과 같은 편리한 기능을 제공합니다 기능을 쉽게 재현하고 디버그하는 기능을 수행 할 수 있습니다.
A의 코드와이즈 토토/pgsql함수는에 지정되어 있습니다.생성 기능문자열 문자로서. 문자열을 쓰면 주변의 단일 따옴표와 함께 평범한 방법으로 문자 그대로, 그러면 기능 본문 내부의 단일 인용문은 두 배; 마찬가지로 모든 백 슬래시는 두 배가되어야합니다. 배가 인용문은 가장 지루하고 더 복잡한 경우 코드는 할 수 있기 때문에 코드가 이해할 수 없게 될 수 있습니다 쉽게 6 개 이상의 인접한 필요를 쉽게 찾을 수 있습니다. 견적 마크. 대신 작성하는 것이 좋습니다 기능 본체로"Dollar-Quoted"문자열 리터럴 (참조섹션 4.1.2.2). 달러 크기의 접근 방식에서는 두 배가되지 않습니다 모든 견적 마크이지만 대신 다른 것을 선택하도록주의하십시오. 필요한 각 레벨의 중첩에 대한 달러 크기의 구분 기호. 예를 들어,를 쓸 수 있습니다.생성 기능명령 AS
함수 testfunc (정수) 생성 또는 교체 (정수) 정수를 $ proc $로 반환합니다 .... .... $ proc $ 언어 와이즈 토토pgsql;
이 내에서는 간단한 리터럴에 인용 표시를 사용할 수 있습니다. SQL 명령의 문자열 및$$to SQL 명령의 조각을 문자열. 포함 된 텍스트를 인용 해야하는 경우$$, 당신은 사용할 수 있습니다$ Q $, 등.
다음 차트는 쓸 때해야 할 일을 보여줍니다. 달러 인용문이없는 견적 마크. 때 유용 할 수 있습니다 사전 도구 인용 코드를 더 많은 것으로 변환합니다 이해할 수 있는.
함수 본문을 시작하고 종료하려면 :
함수 만들기 foo ()는 정수를 반환합니다. .... .... '언어 와이즈 토토pgsql;
단일 인용 기능 본문 내의 어느 곳에서나 인용 점수필수쌍으로 나타납니다.
기능 본문 내부의 문자열 리터럴 예:
a_output : = ''blah ''; f_name = ''foobar ''; 사용자 중에서 *를 선택하십시오.
달러 크기의 접근 방식에서는 글을 쓸 것입니다
a_output : = 'blah'; f_name = 'foobar'; 사용자 중에서 *를 선택하십시오.
정확히PL/PGSQL파서는 어느 쪽이든 볼 수 있습니다 사례.
문자열에 단일 따옴표가 필요할 때 기능 본문 내부의 상수 (예 :
a_output : = a_output || ``그리고``foobar '' ''and xyz ''와 같은 이름.
실제로 값이 추가되었습니다a_output및 'foobar'및 xyz와 같은 이름.
달러 크기의 접근 방식에서
a_output : = a_output || $$ 및 'foobar'및 xyz $$와 같은 이름
주변에 1 달러짜리 구분자를 조심하십시오 이것은 단지 아닙니다$$.
내부 문자열의 단일 따옴표 마크가있을 때 기능 본체는 그 문자열의 끝에 인접 해 있습니다. 상수, 예 :
a_output : = a_output || ``그리고``foobar '' '' ''과 같은 이름
값이 첨부a_output그런 다음 :그리고 'foobar'와 같은 이름.
달러 크기의 접근 방식에서 이것은
a_output : = a_output || $$ 및 'foobar'$$와 같은 이름
문자열에 두 개의 단일 따옴표를 원할 때 상수 (8 인용 점수를 차지하는)와 이것 해당 문자열의 끝에 인접 해 있습니다 (2). 당신은 아마 당신이 글을 쓰는 경우에만 필요할 것입니다. 와 같이 다른 기능을 생성하는 함수예제 36-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사용하기 전에 다시 인용해야합니다.
변형 접근법은 배가로 곱하는 것이 아니라 뒷발로 몸을 기능합니다. 이 방법을 사용하면와 같은 글을 쓰는 것이 좋습니다.\ '\'대신'' ''. 어떤 사람들은 이것을 추적하기가 더 쉽다는 것을 알게됩니다. 일부는 그렇지 않습니다.