captureStatementBatchSQL 특성은 captureMode의 값이 ON인 경우에만 적용됩니다.
이 특성은 다음과 같은 값을 가질 수 있습니다.
따라서 executionMode가 STATIC인 경우에 애플리케이션을 실행할 때 allowDynamicSQL이 TRUE인 경우에만 captureStatementBatchSQL을 OFF로 설정하십시오. 이 상황에서 각 Statement.addBatch() 호출은 동적으로 실행되며 SQL문이 pureQueryXML 파일에 있는지 확인하지 않습니다.
명령문을 캡처하면 captureStatementBatchSQL을 ON으로 설정합니다. 이 설정은 pureQuery가 pureQueryXML 파일에 Statement.addBatch() 메소드로 전달된 모든 명령문 및 maxNonParmSQL로 설정된 최대 한계를 저장합니다.
SQL문을 바인드한 후 애플리케이션을 실행할 때 executionMode를 STATIC으로, allowDynamicSQL을 FALSE로 설정합니다. 애플리케이션이 일괄처리된 SQL문을 실행하도록 요청할 때마다 pureQuery은 pureQueryXML 파일에서 pureQueryXML 파일을 찾습니다. 명령문이 pureQueryXML 파일에 존재하고 바인드되어 있는 경우 pureQuery은 이를 실행합니다. pureQueryXML 파일에 없거나 바인드되지 않은 경우, allowDynamicSQL이 FALSE이므로 pureQuery는 예외로 처리합니다.
일괄처리된 이종 SQL문은 이 유형의 애플리케이션에 유용하며 네트워크 트랙픽을 줄이지만 INSERT, UPDATE 또는 DELETE 명령문 실행의 필요한 순서를 유실하지 않습니다.
애플리케이션의 명령문을 캡처하는 경우 captureStatementBatchSQL을 OFF로 설정합니다. 이 설정으로 pureQuery가 Statement.addBatch() 메소드를 처리하는 SQL문을 캡처하지 않습니다. 이들 명령문은 maxNonParmSQL로 설정한 한계에 대해 계산하지 않습니다.
다른 SQL문을 바인드한 후 애플리케이션을 실행할 경우 executionMode를 STATIC로 설정하고 allowDynamicSQL을 TRUE로 설정합니다. 애플리케이션이 일괄처리된 SQL문을 실행하도록 요청할 때마다 pureQuery은 pureQueryXML 파일에서 찾지 않으며 동적으로 실행합니다.