programing

Java용 SQL 파서 라이브러리

luckcodes 2022. 9. 12. 18:29

Java용 SQL 파서 라이브러리

SQL 문을 구문 분석할 수 있는 오픈 소스 Java 라이브러리가 있습니까?

가능하면 벤더별 구문(Oracle 테이블스페이스 정의 또는 MySQL의 LIMIT 절 등)을 구문 분석할 수 있도록 커스터마이즈하거나 유연해야 합니다.

그렇지 않은 경우 SQL 표준을 엄격하게 준수하는 것도 좋습니다.

업데이트: 다음 두 가지 용도가 있습니다.

  • SQL 이외의 데이터베이스에 SQL 인터페이스 제공(내부 API 호출에 매핑)
  • SQL이 실제 데이터베이스로 전송되기 전에 다시 작성(예: Oracle)

ANTLR3에는 ANSI SQL 문법이 있습니다.이를 사용하여 자체 파서를 만들 수 있습니다.

ANTLR4에는 SQL 문법이 있습니다.

  • JSqlParser
  • Trino의 파서는 ANTLR4를 사용하여 작성되며 파서에서 작성된 자체 불변의 AST 클래스를 가지고 있습니다.AST에는 방문객과 예쁜 프린터가 있습니다.

파서

파서가 필요한 경우 Apache Derby 코드베이스에 파서가 있어야 합니다.

벤더 고유의 SQL 처리

jdbc Connection 객체의 .native() 메서드를 살펴보면 벤더 고유의 쿼리로 후처리되는 벤더 중립 쿼리를 전달할 수 있습니다.

Java용 일반 SQL 파서는 오픈 소스는 아니지만 원하는 대로입니다.

Zql을 시험

휴지 상태에서는 SQL 및 hql 구문 분석에 ANTLR을 사용합니다.

JSqlParser도 좋은 옵션입니다.oracle pl/sql을 해석하는 동안 오류가 발생(또는 일부 기능이 구현되지 않음)했지만 자세한 내용은 포럼을 참조하십시오.

따라서 oracle pl/sql을 구문 분석하는 경우 ANTLR을 사용하는 것이 좋습니다.

구문 분석된 SQL에서 수행할 작업을 선택하십시오.기존 SQL 문법을 사용할 수 있는 Lex/Yacc(BYACC/J, Java Cup)의 Java 구현을 추천할 수 있습니다.

구문 분석된 문법을 실제로 사용하고 싶다면 Java로 작성된 오픈 소스 SQL 데이터베이스인 Derby를 검토해 보는 것이 좋습니다.

언급URL : https://stackoverflow.com/questions/660609/sql-parser-library-for-java