데이터베이스에 액세스하기 위해 다음 명령을 사용할 수 있습니다
SPI_EXEC
?-countn? ?-array이름?명령?루프 바디?문자열로 주어진 SQL 명령을 실행합니다. 오류SPI_EXEC
isselect진술, 값
선택 사항-countvalue ketsSPI_EXEC
최대 숫자fetchn.
명령이 a 인 경우select문, 결과 열의 값이-array옵션이 제공되고 열 값이 제공됩니다
명령이 a 인 경우select진술 및 아니오루프 바디스크립트가 제공되면 첫 번째 결과 행만SPI_EXEC
.) 예 :
SPI_EXEC "PG_PROC에서 CNT로 COUNT (*)를 선택하십시오
토토 사이트 변수를 설정합니다$ cnt의 행 수로PG_PROC시스템 카탈로그.
선택 사항 인 경우루프 바디인수가 주어지면 a루프 바디주어진 경우 무시됩니다select.)
SPI_EXEC -ARRAY C "선택 *에서 pg_class"
모든 행에 대한 로그 메시지를 인쇄합니다pg_class. 이 기능은와 유사하게 작동합니다계속andbreak루프 본체 내부의 일반적인 방식으로 작업하십시오.
쿼리 결과 열이 null이면 대상이"Unset"설정되지 않고.
SPI_PREPARE
쿼리 typelist나중에 실행을위한 쿼리 계획을 준비하고 저장합니다. 그만큼
쿼리는 매개 변수, 즉 자리 표시자를 사용할 수 있습니다$ 1 ... $n. 만약typelist매개 변수가없는 경우pg_type; 예를 들어int4notInteger.
|SPI_PREPARE
사용되는 쿼리 ID입니다SPI_EXECP
. 보다SPI_EXECP
예를 들어.
SPI_EXECP
?-countn? ?-array이름? ?-nullsString?QueryId?Value-List?루프 바디?이전에 준비한 쿼리 실행SPI_PREPARE
.QueryIdSPI_PREPARE
. 쿼리 인 경우Value-List제공해야합니다. 이것은SPI_PREPARE
. 생략Value-List쿼리에 없음이없는 경우
선택적 값-nulls공백의 문자열입니다'n'캐릭터 텔링SPI_EXECP
매개 변수 중 null 값은 어떤 매개 변수입니다. 주어지면, 그것은해야합니다Value-List. 주어지지 않으면 모두
쿼리 및 매개 변수의 방식을 제외하고SPI_EXECP
SPI_EXEC
. 그만큼-count,-array및루프 바디옵션은 동일합니다
준비된 것을 사용한 PL/TCL 기능의 예는 다음과 같습니다.
함수 만들기 t1_count (정수, 정수) 정수를 반환합니다.
토토 사이트이보아야 할 각 백 슬래시는생성. 쿼리 문자열 내부에 백 슬래시가 필요합니다SPI_PREPARE
TO$n마커가 통과됩니다SPI_PREPARE
as-is
spi_lastoid
마지막으로 삽입 된 행의 OID를 반환합니다SPI_EXEC
또는SPI_EXECP
, 명령이 a삽입. (그렇지 않다면, 당신
QUOTE
String단일 인용구와 백 슬래시의 모든 발생을 복제합니다SPI_EXEC
또는SPI_PREPARE
. 예를 들어,
" '$ val'을 ret as"
여기서 토토 사이트 변수val실제로 포함그렇지 않음. 이것
선택한 'do n't'as as ret
이 동안 구문 분석 오류가 발생합니다SPI_EXEC
또는SPI_PREPARE
. 제출 된 명령은
선택한 'dos n't'as at ret
PL/토토 사이트에서 형성 될 수있는
" '[QUOTE $ val]' 'AS RET" 선택
하나의 이점SPI_EXECP
이와 같은 매개 변수 값을 인용 할 필요가 없다는 것입니다.
elog
레벨 MSG로그 또는 오류 메시지를 방출합니다. 가능한 레벨은디버그,log,info,통지,경고,오류및치명적. 대부분은 단순히 주어진을 방출합니다elogc오류오류가 발생합니다치명적거래를 중단하고