SQL Parsing – 1(Oracle Table)
안녕하세요.
오늘 보여드릴 내용은 Oracle Table Parsing 입니다.
요약
- DBMS TYPE 에 ORACLE 을 지정 한 Schema 파일을 엽니다.
- Oracle SQL 형태로 Tokenize 합니다.
- Oracle SQL 형태로 Parsing 처리 합니다.
위의 요약대로 진행하는게 일반적으로 맞는데요.
내부적으로 진행하다 보니, SQL 형태는 COMMON Tokenize를 활용해도 될 듯 하여 그렇게 진행 처리 했습니다.
추후 SQL 별 특성이 너무 과도 하다 싶으면 해당별 Tokenize를 따로 만들어서 운영 할까 합니다.
현재 이 기능은 수공 프로젝트 진행 중 스키마 구문 분석기(2011년 11월경)의 기능을 재 구현한 것입니다.
기존의 것은 Oracle TABLE만을 목적으로 parsing 처리 하였기에,
Sqlite, mssql , mssql같은 형태는 parsing 이 되지 않기에,
현재 관련 작업을 쉽게 할 수 있는 라이브러리 형태추가 하며 진행하고 있습니다.( 모니터 3대사용하네요)
http://free1234.tistory.com/entry/GeeksDBSchemeAnalyzer
http://free1234.tistory.com/entry/Ibatis-Query-%EC%83%9D%EC%84%B1%EA%B8%B0
http://free1234.tistory.com/entry/SQLParser-%EC%98%88%EC%A0%9C
기존에 어느정도 구현된 기능을 병합 중입니다.
(SQL Query 와 SQL Declare 구문 등 병합이 필요 할 듯 합니다.)
캡쳐된 화면을 통해서 보여드리겠습니다.
Table.SQL 에 저장이 된 테이블중 하나 입니다.
관련 Class 파일 입니다.
추후 SELECT , INSERT, DELETE, UPDATE 이런 STATEMENT 가 추가 되지 않을까 합니다.
제 Source Adder 툴에서 메뉴를 선택 합니다.
Table.SQL 은 Oracle SQL 파일이며,
Schema.sql 은 sqlite SQL 파일입니다.
Oracle SQL을 읽어 들인 후의 모습입니다.
TEST_TBL을 보니 총 9개의 컬럼이 파싱 되었군요.
해당 테이블 소스 입니다.
디버깅 상에서 화면입니다
테이블 이름 입니다.
해당 컬럼 파싱 내용입니다.
컬럼 타입별로 파싱된 내역입니다.
COL1, VARCHAR2, 8 BYTE, NOT NULL 파싱이 되었네요.
COL3, DATE 파싱이 되었습니다.
COL9 , VARCHAR2, 100 BYTE 파싱이 되었습니다.
다음 수순은 Comment , PK/FK 파싱 처리를 해야 할 듯 합니다.
감사 합니다.
'습작 및 R&D' 카테고리의 다른 글
SQL PARSING – 3 (ORACLE, MYSQL PK Parsing) (0) | 2014.08.06 |
---|---|
SQL PARSING – 2 (MYSQL Table Parsing) (0) | 2014.08.02 |
HTML PARSER – 3 (뽐뿌휴대폰계시판) (0) | 2014.07.24 |
HTML PARSER – 2 (0) | 2014.07.23 |
HTML Parser - 1 (0) | 2014.07.23 |