윈 토토지정된 실행
에 대한 SQL 명령개수행.
이 함수는 연결된 장치에서만 호출되어야 합니다. 절차. 만일개수0이면 그렇죠 적용되는 모든 행에 대해 명령을 실행합니다. 만일개수이 0보다 크면 명령이 실행될 행 수는 다음과 같습니다. 제한됨(a와 유사함)한도절). 예를 들어,
윈 토토("INSERT INTO 탭 SELECT * FROM 탭", 5);
테이블에 최대 5개의 행을 삽입할 수 있습니다.
하나의 문자열에 여러 명령을 전달할 수 있으며 명령은
규칙에 따라 다시 작성될 수 있습니다.윈 토토마지막으로 실행한 명령의 결과를 반환합니다.
(마지막) 명령이 수행된 실제 행 수 실행된 내용은 전역 변수에 반환됩니다.SPI_처리됨(반환 값이 함수는SPI_OK_UTILITY). 만약 함수의 반환 값은 다음과 같습니다.SPI_OK_SELECT그러면 전역 포인터를 사용해도 됩니다SPITupleTable *SPI_tuptable액세스하려면 결과 행.
구조SPITupleTable이다 다음과 같이 정의됩니다:
typedef 구조체
MemoryContext tuptabcxt; /* 결과 테이블의 메모리 컨텍스트 */
uint32가 할당되었습니다. /* 할당된 값의 수 */
uint32 무료; /* 사용 가능한 값의 수 */
TupleDesc tupdesc; /* 행 설명자 */
HeapTuple *vals; /* 행 */
SPITupleTable;
발스은 포인터 배열입니다. 행. (유효한 항목 수는 다음과 같습니다.SPI_처리됨). tupdesc은 전달할 수 있는 행 설명자입니다. 행을 다루는 SPI 함수에.tuptabcxt, 할당됨및무료SPI 호출자가 사용하도록 의도되지 않은 내부 필드입니다.
SPI_finish모두 해제SPITupleTable12611_12743SPI_freetuptable.
명령 실행이 성공했다면 다음 중 하나가 됩니다. 다음(음수가 아닌) 값이 반환됩니다.
if a선택(그러나 아님선택 ... INTO)가 실행되었습니다.
if a선택 ... INTO이었음 실행됨
if a삭제처형되었습니다
만일삽입처형되었습니다
만일업데이트처형되었습니다
유틸리티 명령인 경우(예:만들기 표)이 실행되었습니다.
오류 발생 시 다음 음수 값 중 하나는 다음과 같습니다. 반환됨:
if명령isNULL또는개수이다 0 미만
ifstdout에 복사또는표준 입력에서 복사시도되었습니다
if선언, 닫기또는가져오기이었음 시도함
if시작, 커밋또는롤백시도되었습니다
명령 유형을 알 수 없는 경우(발생하지 않아야 함)
연결되지 않은 프로시저에서 호출된 경우