2014. 8. 1. 04:47

SQL Parsing – 1(Oracle Table)

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

안녕하세요.

오늘 보여드릴 내용은 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