2011-11-24 5 views
1

다른 SQL 문 (query, dml, ddl, dcl)을 실행하는 프로그램을 작성하고 있습니다. 실행 된 명세서 (방법 boolean Statement#execute(String s))가 ddl 또는 dcl인지 어떻게 확인할 수 있습니까? 쿼리를 결정하는 방법을 알고 있습니다. 문은 execute() 메서드가 을 반환 할 때 쿼리였으며 statement#execute() 반환 값이 false이면 dml, ddl 또는 dcl 일 수 있습니다. 어떻게 문장의 유형을 결정합니까?jdbc에서 DDL 문 결정

답변

1

결과 (execute() == true)의 존재가 반드시 쿼리를 나타내는 것은 아닙니다. 예 : PostgreSQL에서 DELETE 문은 결과를 반환 할 수도 있습니다 (returning 절 사용시).

이 성명의 모든 결과 또는 갱신 카운트를 처리하려면 getMoreResults()의 Javadoc과 함께 문서화 된 가이드 라인을 다음과 루프를 구현해야합니다

다음에 해당하면 더 많은 결과가 없습니다 :

// STMT 성명 객체
((stmt.getMoreResults (전류) == false)를 & & (stmt.getUpdateCount() == -1))이다

+0

내 질문을 편집했습니다. 나는 이전에 내가 오라클을 사용하고 있다고 말하지 않았다. – maks

+0

@maks : 모든 결과 및 업데이트 횟수를 얻기위한 규칙이 여전히 적용됩니다. –

+0

execute() 메서드는 execute (String sql)가 하나의 쿼리 만 매개 변수로 가져올 수있는 경우 여러 결과 집합을 반환 할 수 있습니까? – maks