이 문서는 지원되지 않는 토토 꽁 머니 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.토토 : 문서 : 17 : SPI_PREPARE버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

SPI_prepare

SPI_prepare — 아직 실행하지 않고 명령문 준비

시놉시스

SPIPlanPtr SPI_prepare(상수 문자 *명령, 정수나르그, 오이드 *argtypes)

설명

SPI_prepare지정된 명령에 대해 준비된 명령문을 생성하고 반환하지만 명령을 실행하지는 않습니다. 준비된 문은 나중에 다음을 사용하여 반복적으로 실행될 수 있습니다.SPI_execute_plan.

동일하거나 유사한 명령을 반복적으로 실행해야 하는 경우 일반적으로 구문 분석을 한 번만 수행하는 것이 유리하며 더욱이 명령에 대한 실행 계획을 재사용하는 것이 유리할 수 있습니다.SPI_prepare명령 문자열을 구문 분석 결과를 캡슐화하는 준비된 명령문으로 변환합니다. 또한 준비된 문은 각 실행에 대한 사용자 지정 계획을 생성하는 것이 도움이 되지 않는 것으로 확인된 경우 실행 계획을 캐싱할 수 있는 장소를 제공합니다.

준비된 명령은 매개변수를 작성하여 일반화할 수 있습니다($1, $211507_11634SPI_execute_plan호출됩니다. 이를 통해 준비된 명령을 매개변수 없이 가능한 것보다 더 넓은 범위의 상황에서 사용할 수 있습니다.

다음에 의해 반환된 명령문SPI_prepare이후 C 함수의 현재 호출에만 사용할 수 있습니다.SPI_finish해당 명령문에 할당된 메모리를 해제합니다. 그러나 함수를 사용하면 명령문을 더 오랫동안 저장할 수 있습니다.SPI_keepplan또는SPI_saveplan.

인수

상수 문자 *명령

명령 문자열

int나그스

입력 매개변수 수($1, $2등)

오이드 *argtypes

다음을 포함하는 배열에 대한 포인터OID매개변수의 데이터 유형

반환 값

SPI_preparenull이 아닌 포인터를 반환합니다.SPIP플랜는 준비된 문을 나타내는 불투명 구조체입니다. 오류 발생 시,NULL반환될 것이며SPI_result에서 사용하는 것과 동일한 오류 코드 중 하나로 설정됩니다.SPI_execute(다음으로 설정된 경우 제외)SPI_ERROR_ARGUMENTif명령isNULL또는 만약나그스이 0보다 작거나 다음과 같은 경우나그스0보다 크고argtypesisNULL.

참고

매개변수가 정의되지 않은 경우 처음 사용할 때 일반 계획이 생성됩니다.SPI_execute_plan이며 모든 후속 실행에도 사용됩니다. 매개변수가 있는 경우 처음 몇 가지 사용은SPI_execute_plan제공된 매개변수 값에 특정한 사용자 정의 계획을 생성합니다. 동일한 준비된 명령문을 충분히 사용한 후,SPI_execute_plan일반 계획을 세울 것이며, 그것이 맞춤 계획보다 훨씬 비싸지 않다면 매번 다시 계획하는 대신 일반 계획을 사용하기 시작할 것입니다. 이 기본 동작이 적합하지 않은 경우 다음을 전달하여 변경할 수 있습니다.CURSOR_OPT_GENERIC_PLAN또는CURSOR_OPT_CUSTOM_PLAN다음에 플래그 지정SPI_prepare_cursor, 각각 일반 또는 사용자 정의 계획을 사용하도록 강제합니다.

준비된 문의 주요 요점은 반복적인 구문 분석 및 문의 계획을 피하는 것이지만,포스트그레SQL이전의 준비된 문의 사용 이후 문에 사용된 데이터베이스 개체가 정의(DDL) 변경을 거칠 때마다 문을 사용하기 전에 문을 강제로 재분석하고 다시 계획합니다. 또한, 값이검색_경로한 용도에서 다음 용도로 변경되면 명령문은 새로운 것을 사용하여 다시 구문 분석됩니다.검색_경로. (이 후자의 동작은 현재 새로운 것입니다.토토 꽁 머니9.3.) 참조준비Prepared 문의 동작에 대한 자세한 내용은.

이 함수는 연결된 C 함수에서만 호출되어야 합니다.

SPIPlanPtr은(는) 불투명 구조체 유형에 대한 포인터로 선언됩니다.spi.h. 해당 내용에 직접 액세스하려고 시도하는 것은 현명하지 않습니다. 그렇게 하면 향후 개정판에서 코드가 손상될 가능성이 훨씬 높아지기 때문입니다.토토 꽁 머니.

이름SPIPlanPtr데이터 구조에 더 이상 실행 계획이 반드시 포함되지 않으므로 다소 역사적입니다.