SQL Parser 문의 및 추천부탁드립니다,. 0 1 6,263

by cklide [DB 기타] parser oracle mysql mssql altibase java [2019.03.21 17:03:03]


안녕하세요 

DB관련 프로젝트하고 있는데요. 

 

SQL (DDL, DML, 그리고 각 DBMS 의 스크립트 SQL - PLSQL 같은..)  을 파싱하여 

AST를 구성하려고합니다. AST는 SCHEMA - TABLE - COL 의 구조로 파악하여 저장하려고 하는데요. 

 

(지원할 db는 oracle이 기본, 그리고 추후에 mssql, altibase, mysql, postgresql입니다) 

 

기존에 SQL 파서들을 보면 기본적인 Token  (table, 컬럼명 등) 을 잘 파싱을 하는 것같으나 

join 이라던지 , as가 붙어있으면 실제 Schema -table -col 구조로 파싱하는것은 잘 없는것 같아서요..

 

JSqlParser, jooq 등의 파서와 ANTLR 를 이용하여 만든 파서를 활용한 샘플을 보고있습니다..

없으면 구현을 해야하는 상황이고, 그에따른 MM 이 달라질것같아서 확인좀 해보려합니다..

 

혹시 DDL DML 등 구조를 잘 맵핑해주는 기존 오픈소스 파서에 대해서 정보좀 부탁드립니다.

by 부쉬맨 [2019.03.22 14:43:52]

이게 sql을 분석하다보면 좀더 어려워지는부분이

스칼라서브쿼리 등의 뎁스가 깊어지면 질수록 분석하기어려운 문제가 발생되는일이있습니다.

조인이라든지하는 부분은 이미 분석된 형태소정보를 가지고 가져가야하는 데이터로 만드셔야되는 부분이 존재합니다.

대부분의 파서들은 구문분석을 할뿐이지 해당문법을 알려주지않거든요.

antlr이 그래도 형태소 분석해서 해당 구조를 트리구조로 만들어주는걸로 알고있는데 확인해보시면 될듯합니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입