2013-03-18 3 views
1

필자는 Derby를 처음 사용하고 있으며 SQL 파서가 실제 데이터베이스와 별도로 사용될 수 있는지 판단하려고합니다. 예를 들어, SQL 문에서 참조되는 테이블의 목록을 가져올 수 있어야합니다. 주어진 JDBC JDBC 드라이버에서 ContextManager를 가져 와서 질의 트리에서 결과 집합 노드를 얻는 방법으로이 작업을 수행 할 수 있다고 생각합니다 (http://rickosborne.org/blog/2010/02/derby-svn-coldfusion-sql-parser/ 참조).Derby를 사용하여 실제 테이블없이 SQL 구문을 분석 하시겠습니까?

SQL의 테이블이 실제로 Derby DB에 존재하지 않는다는 점에 유의하십시오 (Derby는이를 올바르게 확인하고 java.sql.SQLSyntaxErrorException로 응답합니다) : "Table/View 'FOO '존재하지 않습니다. ") 그래서 ... prepareStatement (sql)을 수행 할 때 테이블 존재 여부를 확인하도록 연결을 구성하는 방법이 있습니까? (연결은 driver.connect ("jdbc : derby : memory : dummy; create = true", props)를 사용하여 만듭니다.

답변

0

아마도 테이블을 만들 수 있습니까? 메모리 내 데이터베이스이기 때문에 테이블을 생성하는 작업은 오버 헤드가 매우 적습니다.

+0

감사합니다. Bryan. 그 생각은 내 마음을 넘어 섰습니다 ... 더비는 존재하지 않는 각 열에 대해서도 예외를 던질 것입니까? SQL 문을 구문 분석하고 테이블을 추출하는 쉬운 방법이 있습니까? 더비 (Derby)는 강력한 옵션처럼 보이지만 가능하다면 해킹을 너무 많이 생성하고 싶지는 않습니다. – user2183260