이 문서는 >25_word_end<되지 않는 버전의 PostgreSQL 용입니다.
>143_word_end<PostgreSQL :<버전 >355_word_end< 위에 나열된 다른 >25_word_end< 버전 중 하나입니다.

180_word_end<="PLTCL-DBACCESS" id= "PLTCL-DBACCESS">>168_word_end<

데이터베이스에 액세스하기 위해 >163_word_end< >182_word_end<을 사용할 수 있습니다 PL/TCL 기능의 본문에서 :

>174_word_end<?>176_word_end<n>178_word_end<>179_word_end<>180_word_end<?>182_word_end<?>184_word_end<?

문자열로 주어진 SQL >182_word_end<을 실행합니다. 오류 >182_word_end<으로 인해 오류가 발생합니다. 그렇지 않으면 반환 값>174_word_end<IS 처리 된 행 수 (선택, >358_word_end<, 업데이트, >355_word_end< >182_word_end<에 의해 삭제) >355_word_end< >182_word_end<이 유틸리티 진술. 또한 >182_word_end<이 A 인 경우>191_word_end<>192_word_end<

>194_word_end<>176_word_end<>196_word_end<>174_word_end<최대 숫자 >182_word_end<에서 처리 할 행. 이것의 효과는입니다 >250_word_end<를 커서로 설정 한 >163_word_end< 속담>199_word_end<n.

>182_word_end<이 a 인 경우>191_word_end<문, 결과 열의 >196_word_end< TCL 변수 열에 >287_word_end<을 따서 명명되었습니다. 인 경우>179_word_end<옵션이 제공되고 열 >196_word_end< 제공됩니다 대신 >287_word_end< 지정된 연관 배열에 저장됩니다 배열 인덱스로 사용 된 열 >287_word_end<.

>182_word_end<이 a 인 경우>191_word_end<>211_word_end<>212_word_end<스크립트가 주어지면 첫 번째 행만이 >163_word_end<과 같습니다. TCL 변수에 저장; 남은 행은 있다면 무시했습니다. >250_word_end<가 행을 반환하지 않으면 저장이 발생하지 않습니다. (이 경우는의 결과를 확인하여 감지 할 수 있습니다.>174_word_end<>215_word_end<

>174_word_end< ">222_word_end<에서 CNT로 COUNT (*)를 선택하십시오

>219_word_end<>220_word_end<>221_word_end<>222_word_end<>223_word_end<

>194_word_end< 인 경우>226_word_end<>227_word_end<>226_word_end<>229_word_end<>191_word_end<.) >71_word_end< 행 열의 값은 TCL에 저장됩니다. 각 반복 전 변수. 예를 들어,

>174_word_end< -ARRAY C "선택 *에서 pg_class"
    Elog Debug "Table $ C (Rel>180_word_end<)가 있습니다.

>235_word_end<>236_word_end<>237_word_end<>238_word_end<>239_word_end<>240_word_end<>241_word_end<

>243_word_end<>244_word_end<>245_word_end<

>248_word_end< >250_word_end< >252_word_end<

나중에 실행을위한 >250_word_end< 계획을 준비하고 저장합니다>326_word_end< 저장된 계획은 >71_word_end<의 수명 동안 유지됩니다. 세션.180_word_end<="AEN32766" id="AEN32766">

>250_word_end<는 매개 변수, 즉 자리 표시자를 사용할 수 있습니다 계획이 실제로있을 때마다 제공 될 값 실행. >250_word_end< 문자열에서 기호>258_word_end< >259_word_end< $n. 만약 >250_word_end<는 매개 변수 유형의 >287_word_end< 인 매개 변수를 사용합니다 TCL 목록으로 제공되어야합니다. (빈 목록 작성>252_word_end<매개 변수가없는 경우 >71_word_end< 사용됩니다.) >71_word_end< 매개 변수 유형은이어야합니다 시스템에 표시된 내부 유형 >287_word_end<으로 식별 테이블>265_word_end<>266_word_end<>267_word_end<>268_word_end<>269_word_end<.

>272_word_end<>248_word_end<사용되는 >250_word_end< ID입니다 후속 전화>174_word_end>276_word_end<>174_word_end>278_word_end<

>174_word_end?>176_word_end<n>178_word_end<>179_word_end<>287_word_end<>178_word_end<>289_word_end<>290_word_end<?>292_word_end<?>294_word_end<>295_word_end<>212_word_end<?

>155_word_end<에 준비한 >250_word_end< 실행>248_word_end<. >292_word_end<>248_word_end<>305_word_end<>294_word_end<제공해야합니다. 이것은 매개 변수에 대한 실제 값의 TCL 목록. 목록 매개 변수 유형 목록과 같은 길이 여야합니다. >155_word_end<에>248_word_end<>309_word_end<>294_word_end<>311_word_end<

>313_word_end<>289_word_end<>315_word_end<>316_word_end<>317_word_end<>174_word_end>319_word_end<>294_word_end<>321_word_end<

>250_word_end< 및 매개 변수의 방식을 제외하고 지정되어 있습니다.>174_word_end>174_word_end<>326_word_end<>176_word_end<, >179_word_end<>212_word_end<>332_word_end<

준비된 것을 사용한 PL/TCL 기능의 예는 >163_word_end<과 같습니다. 계획:

CREATE FUNCTION t1_count(integer, integer) RETURNS integer AS '
    ! [정보가 gd (plan)] 가 있다면
        # 첫 번째 통화에 저장된 계획을 준비합니다
        set GD(plan) [ spi_prepare \\
                "SELECT count(*) AS cnt FROM t1 WHERE num = \\$1 AND num <= \\$2" \\
                [List Int4 Int4]]

    >174_word_end

258_word_end< $ 2] $ CNT를 반환합니다 ' LANGUAGE pltcl;

>338_word_end<>339_word_end<. >250_word_end< 문자열 내부에 백 슬래시가 필요합니다 주어진>248_word_end<>342_word_end<$n>345_word_end<>248_word_end<>347_word_end<

>350_word_end<

>353_word_end<>354_word_end<>355_word_end<>174_word_end, >182_word_end<이 a 싱글 로우>358_word_end<>359_word_end<

>362_word_end< >290_word_end<

단일 인용구와 백 슬래시의 모든 발생을 복제합니다 주어진 문자열의 문자. 이것은 안전하게 사용될 수 있습니다 SQL >182_word_end<에 >358_word_end< 될 인용 문자열 주어진>174_word_end<or>248_word_end<. 예를 들어, SQL >182_word_end< 문자열과 같은에 대해 생각하십시오.

" '$ val'을 ret as"

where the 토토 사이트 variablevalactually contains그렇지 않음. 이것 최종 >182_word_end< 문자열을 초래할 것입니다

SELECT 'doesn't' AS ret

이 동안 구문 분석 오류가 발생합니다>354_word_end<>355_word_end<>248_word_end<. 제출 된 >182_word_end<은 포함하다

선택한 'does n't'as at ret

which can be formed in PL/Tcl using

"선택 '[>362_word_end< $ val]'AS ret"

하나의 이점>174_word_end이와 같은 매개 변수 값을 인용 할 필요가 없다는 것입니다. 매개 변수는 SQL의 일부로 구문 분석되지 않으므로 >182_word_end< 문자열.

elog 레벨 MSG

로그 >355_word_end< 오류 메시지를 방출합니다. 가능한 레벨은디버그, LOG, Info, 통지, 경고, 오류치명적. 대부분은 단순히 주어진을 방출합니다 메시지와 같은 메시지elogc 기능.ERROR오류가 발생합니다 조건 : 기능의 추가 실행이 버려집니다. 그리고 >71_word_end< 거래가 중단되었습니다.치명적거래를 중단하고 >71_word_end< 세션 종료. (아마도 좋지 않을 것입니다 PL/TCL 기능 에서이 오류 수준을 사용하는 이유이지만 완전성을 위해 제공됩니다.)