애플리케이션이 pureQueryXML 파일에서 캡처되지 않는 SQL문을 동적으로 실행하는지 아니면 캡처되지만 바인드되지는 않는
SQL문을 동적으로 실행하는지를 지정합니다.
이 특성은 executionMode가 STATIC일 경우에만
애플리케이션에 적용됩니다.이 특성은
다음과 같은 값을 가질 수 있습니다.
- 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로 설정되는 경우, 특수 레지스터 또는 특수 레지스터 설정 효과가 있는 JDBC 연결 메소드를 설정하는
SET 명령문은 pureQuery Runtime에 의해 제한되지 않습니다. 명령문은 pureQueryXML 파일에 있는지 여부에 관계없이
항상 허용됩니다.
낙관적 잠금을 사용하여 SQL문이 실행되는 경우
명령문을 정적으로 실행할 수 없습니다.
결과적으로 pureQuery Runtime은 낙관적 잠금을 사용하여 실행되는 명령문을 캡처하지 않습니다.
명령문은 pureQuery Runtime 옵션
allowDynamicSQL 또는
capturedOnly의 영향을 받지 않습니다.
낙관적 잠금은 다음 방법 중 하나를 사용하여 적용됩니다.
DB2Connection.prepareDB2OptimisticLockingQuery
DB2Statement.executeDB2OptimisticLockingQuery
다음 표는
capturedOnly, executionMode 및 allowDynamicSQL
조합과 결과적인 조작을 보여줍니다.
표 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