allowDynamicSQL 특성

애플리케이션이 pureQueryXML 파일에서 캡처되지 않는 SQL문을 동적으로 실행하는지 아니면 캡처되지만 바인드되지는 않는 SQL문을 동적으로 실행하는지를 지정합니다.
이 특성은 executionModeSTATIC일 경우에만 애플리케이션에 적용됩니다.

이 특성은 다음과 같은 값을 가질 수 있습니다.

TRUE
응용 프로그램은 캡처하지 않은 SQL문을 동적으로 실행합니다. pureQueryXML 파일에서 캡처된 SQL문을 동적으로 실행하고 명령문은 바인드되지 않도록 구성됩니다. pureQuery 런타임은 pureQueryXML 파일의 SQL문이 isBindable 속성에서 바인드되는지 여부를 결정합니다. 속성 값이 TRUE인 경우 명령문은 바인드되고 FALSE인 경우 명령문은 바인드되지 않습니다.

이 값이 기본값입니다.

애플리케이션이 SQLExceptions을 지정하여 캡처하거나 바인드하지 않은 SQL문을 찾도록 하기 위해, allowDynamicSQL을 TRUE로 설정되지 않도록 선택할 수 있습니다.

FALSE
메소드가 캡처되지 않거나 바운드되지 않은 SQL문을 사용하는 경우 pureQuery는 예외를 발생합니다. 다음 메소드는 이와 같은 이유로 예외가 발생할 수 있는 메소드 중 일부입니다.
  • Java™ 애플리케이션의 경우:
    • Connection.prepareStatement()
    • Statement.addBatch()
    • Statement.execute()
    • Statement.executeQuery()
    • Statement.executeUpdate()
  • CLI 애플리케이션의 경우:
    • SQLPrepare()
    • SQLExecute()
    • SQLExecDirect()

주: allowDynamicSQL 특성이 TRUE인 경우, SET SPECIAL REGISTER문 또는 statementType이 SET_METHOD인 명령문은 pureQuery Runtime에 의해 제한되지 않습니다. 명령문은 pureQueryXML 파일에 있는지 여부에 관계없이 항상 허용됩니다.

다음 표는 capturedOnly, executionModeallowDynamicSQL 조합과 결과적인 조작을 보여줍니다.

표 1. capturedOnly, executionMode 및 allowDynamicSQL 조합 및 결과 조작:
capturedOnly executionMode allowDynamicSQL 일치하는 SQL문 결과
TRUE STATIC TRUE YES isBindable = True, 정적으로 SQL문 실행

isBindable = False, 동적으로 SQL문 실행

TRUE STATIC/DYNAMIC TRUE/FALSE NO 오류 리턴
TRUE STATIC FALSE YES isBindable = True, 정적으로 SQL문 실행

isBindable = False, 오류 리턴

TRUE DYNAMIC TRUE/FALSE YES SQL문 실행
FALSE STATIC TRUE YES isBindable = True, 정적으로 SQL문 실행

isBindable = False, 동적으로 SQL문 실행

FALSE STATIC TRUE NO 동적으로 SQL문 실행
FALSE STATIC FALSE YES isBindable = True, 정적으로 SQL문 실행

isBindable = False, 오류 리턴

FALSE STATIC FALSE NO 오류 리턴
FALSE DYNAMIC TRUE/FALSE YES/NO SQL문 실행

DB2 CLI 및 IBM Data Server Driver 사용법 참고

DB2® CLI(Call Level Interface) 또는 IBM® Data Server Driver를 pureQuery 런타임에 사용하는 경우 pureQuery Runtime 특성을 구성 키워드로 사용할 수 있습니다.

IBM CLI 키워드 구문
allowDynamicSQL = TRUE | FALSE
IBM Data Server Driver 구성 구문
< parameter name="allowDynamicSQL" value="TRUE | FALSE" />
.NET 연결 문자열 키워드에 대한 해당 IBM Data Server Provider
N/A

피드백