SQL 문을 구문 분석하기위한 오픈 소스 Java 라이브러리가 있습니까?
가능하면 벤더별 구문 (예 : Oracle 테이블 스페이스 정의 또는 MySQL의 LIMIT 절)을 구문 분석 (또는 적어도 무시) 할 수있을 정도로 사용자 정의 가능하거나 유연해야합니다.
그렇지 않으면 SQL 표준을 엄격하게 준수하는 것입니다.
업데이트 : 나는 두 가지를 위해 이것을 필요로한다 :
- 비 SQL 데이터베이스에 SQL 인터페이스 제공 (내부 API 호출로 맵핑)
- 실제 데이터베이스로 가기 전에 SQL을 다시 작성 (예 : Oracle)
답변
답변
- JSqlParser
- Presto의 구문 분석기 는 ANTLR4를 사용하여 작성되며 구문 분석기에서 빌드 된 자체 변경 불가능한 AST 클래스를 갖습니다. AST에는 방문자와 예쁜 프린터가 있습니다.
답변
파서
파서가 필요한 경우 Apache Derby 의 코드베이스에 파서가 있어야합니다 .
공급 업체별 SQL 처리
jdbc Connection 객체 에서 .native () 메소드를보고 공급 업체 중립 쿼리를 전달하여 공급 업체별 쿼리로 후 처리 할 수 있습니다.
답변
Java 용 일반 SQL 구문 분석기 는 공개 소스가 아니지만 사용자가 원하는 것입니다.
답변
답변
Hibernate는 SQL과 hql 파싱을 위해 ANTLR을 사용한다.
JSqlParser도 좋은 옵션입니다 .Oracle pl / sql을 구문 분석하는 동안 몇 가지 버그 (또는 일부 기능은 구현되지 않음)가 있지만. 자세한 내용은 포럼을 참조하십시오.
따라서 Oracle pl / sql을 구문 분석하는 경우 ANTLR이 권장됩니다.
