개발할 수 있는 좋은 방법 중 하나와이즈 토토/pgSQL다음의 텍스트 편집기를 사용하는 것입니다. 함수를 생성하도록 선택하고 다른 창에서 다음을 사용하세요.psql로드하고 테스트하려면 기능. 이런식으로 하시면 좋은거 같아요 다음을 사용하여 함수를 작성합니다.생성 또는 교체 기능. 그렇게 하면 파일을 다시 로드하여 업데이트할 수 있습니다. 함수 정의. 예를 들면:
함수 생성 또는 교체 testfunc(integer) 정수를 $$로 반환합니다.
....
$$ 언어 와이즈 토토pgsql;
실행 중psql, 할 수 있어요 다음을 사용하여 함수 정의 파일을 로드하거나 다시 로드합니다.
\i 파일명.sql
그런 다음 즉시 SQL 명령을 실행하여 테스트합니다. 기능.
개발하는 또 다른 좋은 방법와이즈 토토/pgSQLGUI 데이터베이스 액세스 도구를 사용합니다. 절차적 언어의 개발을 촉진합니다. 하나 이러한 도구의 예는 다음과 같습니다.PgAccess, 다른 것들도 존재하지만. 이러한 도구 작은따옴표 이스케이프와 같은 편리한 기능을 제공하는 경우가 많습니다. 함수를 더 쉽게 재생성하고 디버깅할 수 있습니다.
a의 코드와이즈 토토/pgSQL함수는에 지정됩니다.만들기 기능문자열 리터럴로. 문자열을 쓰면 작은 따옴표를 둘러싸는 일반적인 방식으로 문자 그대로, 함수 본문 내부의 작은따옴표는 다음과 같아야 합니다. 두 배; 마찬가지로 모든 백슬래시는 두 배가 되어야 합니다. 두 배로 늘리기 인용문은 기껏해야 지루하고, 더 복잡한 경우에는 코드는 완전히 이해하기 어려워질 수 있습니다. 6개 이상의 인접 항목이 필요하다는 사실을 쉽게 알 수 있습니다. 따옴표. 대신에 다음을 작성하는 것이 좋습니다. 함수 본문은"달러 인용"문자열 리터럴(참조섹션 4.1.2.2). 달러 인용 방식에서는 절대 두 배가 되지 않습니다. 대신에 다른 따옴표를 선택하도록 주의하세요. 필요한 각 중첩 수준에 대한 달러 인용 구분 기호입니다. 예를 들어, 다음과 같이 작성할 수 있습니다.만들기 기능명령어
함수 생성 또는 교체 testfunc(integer) 정수를 $PROC$로 반환합니다.
....
$PROC$ 언어 와이즈 토토pgsql;
이 안에는 간단한 리터럴에 따옴표를 사용할 수 있습니다 SQL 명령의 문자열 및$$에 조립 중인 SQL 명령의 조각을 구분합니다. 문자열. 다음을 포함하는 텍스트를 인용해야 하는 경우$$, 다음을 사용할 수 있습니다.$Q$, 등등.
다음 차트는 글을 쓸 때 해야 할 일을 보여줍니다. 달러 인용이 없는 따옴표. 다음과 같은 경우에 유용할 수 있습니다. 달러 이전 인용 코드를 더 많은 것으로 변환 이해할 수 있다.
함수 본문을 시작하고 끝내려면, 예를 들어:
CREATE FUNCTION foo()는 정수를 '로 반환합니다.
....
' 언어 와이즈 토토pgsql;
작은따옴표로 묶인 함수 본문 내 어디에서나 quote 마크반드시쌍으로 나타납니다.
함수 본문 내부의 문자열 리터럴의 경우, 예:
a_output := ''어쩌고''; SELECT * FROM 사용자 WHERE f_name=''foobar'';
달러 인용 방식에서는 다음과 같이 작성하면 됩니다.
a_output := '어쩌고'; SELECT * fROM 사용자 WHERE f_name='foobar';
정확히는 다음과 같습니다와이즈 토토/pgSQL파서는 다음 중 하나에서 볼 수 있습니다. 경우.
문자열에 작은따옴표가 필요한 경우 함수 본문 내부의 상수입니다. 예를 들면 다음과 같습니다.
a_output := a_output || '' AND 이름 LIKE ''''foobar'''' AND xyz''
실제로 추가된 값a_output다음과 같을 것입니다:그리고 이름 LIKE 'foobar' AND xyz.
달러 인용 방식에서는 다음과 같이 작성합니다.
a_output := a_output || $$ AND 이름 LIKE 'foobar' AND xyz$$
주위에 달러 인용 구분 기호가 있는지 주의하세요. 이건 그냥이 아니야$$.
문자열 내부에 작은따옴표가 있는 경우 함수 본문이 해당 문자열의 끝에 인접해 있습니다. 상수(예:
a_output := a_output || '' AND 이름 LIKE ''''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
|| ''''''; 다음 경우 종료;'';
값a_output그러겠다 그렇다면:
v_...가 ''...''와 같다면 ''...''를 반환합니다. 다음과 같은 경우 종료;
달러 인용 방식에서는 다음과 같습니다
a_output := a_output || $$ v_$$인 경우 || Referrer_keys.kind || $$는 '$$처럼
|| Referrer_keys.key_string || $$'
그런 다음 '$$ || Referrer_keys.referrer_type
|| $$'; 다음 경우 종료;$$;
여기서는 작은따옴표만 넣으면 된다고 가정합니다. 안으로a_output, 왜냐하면 그럴 것이기 때문입니다. 사용하기 전에 다시 인용하십시오.
변형적인 접근 방식은 함수 본문을 두 배로 늘리는 대신 백슬래시를 사용하세요. 이 방법을 사용하면 다음과 같은 내용을 작성하게 될 것입니다.\'\'대신''''. 어떤 사람들은 이것을 추적하기가 더 쉽다고 생각합니다. 일부는 그렇지 않습니다.