[HOME]   [What is Wolf SQL Parser]   [download]   [How to Use]  

What is Wolf SQL Parser

Parser

Wolf SQL Parser is a SQL parser written in Java.
The parser itself is written with JavaCC.
See the Supported [ SQL grammer ]

Formatter

Wolf SQL Parser can format beautiful sql-statement
This feature is used VISITOR Pattern of GOF Design pattern
See the [ formatted sample ]


download

Sourceforge[WolfSQLParser]



How to Use

Parse SQL
			ParserFactory ff = new WolfParserFactory();

			System.out.println("--- input SQL START---");
			System.out.println(input);
			System.out.println("--- input SQL END ---");

			ParserUtil util = ff.createParserUtil(input);

			// util.enable_tracing();
			if (util.parse()) {
				System.out.println("parse success");
			} else {
				for (Iterator ite = util.getExpectedTokens(); ite.hasNext();) {
					System.out.println("expects[" + ite.next() + "]");
				}
			}
			System.out.println("isDML[" + util.isDML() + "]");
			System.out.println("doQuery(SELECT Statement)[" + util.doQuery()
					+ "]");
			System.out.println("Num Of SQLStatements ["
					+ util.getSQLStatements().length + "]");
			System.out.println("---- NODES DUMP ----------");
			util.dumpNodes();
 		
--- input SQL START---
 SELECT COALESCE( US.USRNMKJ, TN.USRID ) AS USRNMKJ,          
        TE.TENNM ,SZ.SYZKKKRNO                                
 FROM TNT_KAYAKU TN                                           
 LEFT JOIN  UNS US         
   ON US.USRID = TN.USRID                                     
 LEFT JOIN TOPINF TE                                          
   ON TE.TENNO = TN.TNTSTENNO                                 
 LEFT JOIN SZZLINF SZ                                         
   ON TN.USRID = SZ.USRID AND TN.TNTIOIOO = SZ.SYZKTENNO      
 WHERE TN.TNTKAYAKUID =  '9990000011'                                            
--- input SQL END ---

parse success
isDML[true]
doQuery(SELECT Statement)[true]
Num Of SQLStatements [1]
---- NODES DUMP ----------
 Start [ [SELECT] BEGIN[1/2] END[1/7]/ ['9990000011'] BEGIN[10/26] END[10/37]]
  DML [ [SELECT] BEGIN[1/2] END[1/7]/ ['9990000011'] BEGIN[10/26] END[10/37]]
   SelectBase [ [SELECT] BEGIN[1/2] END[1/7]/ ['9990000011'] BEGIN[10/26] END[10/37]]
    SelectBaseAndUnion [ [SELECT] BEGIN[1/2] END[1/7]/ ['9990000011'] BEGIN[10/26] END[10/37]]
     SelectSecond [ [SELECT] BEGIN[1/2] END[1/7]/ ['9990000011'] BEGIN[10/26] END[10/37]]
      SelectThird [ [SELECT] BEGIN[1/2] END[1/7]/ ['9990000011'] BEGIN[10/26] END[10/37]]
       SelectColumns [ [COALESCE] BEGIN[1/9] END[1/16]/ [SYZKKKRNO] BEGIN[2/22] END[2/30]]
        SelectColumnsElement [ [COALESCE] BEGIN[1/9] END[1/16]/ [USRNMKJ] BEGIN[1/45] END[1/51]]
         Expr [ [COALESCE] BEGIN[1/9] END[1/16]/ [)] BEGIN[1/40] END[1/40]]
          ExprComp [ [COALESCE] BEGIN[1/9] END[1/16]/ [)] BEGIN[1/40] END[1/40]]
           BuiltInFunctionExpression [ [COALESCE] BEGIN[1/9] END[1/16]/ [)] BEGIN[1/40] END[1/40]]
            Function [ [COALESCE] BEGIN[1/9] END[1/16]/ [)] BEGIN[1/40] END[1/40]]
             SingleRowFunction [ [COALESCE] BEGIN[1/9] END[1/16]/ [)] BEGIN[1/40] END[1/40]]
              MiscellaneousFunction [ [COALESCE] BEGIN[1/9] END[1/16]/ [)] BEGIN[1/40] END[1/40]]
               AbcFunction [ [COALESCE] BEGIN[1/9] END[1/16]/ [)] BEGIN[1/40] END[1/40]]
                Expr [ [US] BEGIN[1/19] END[1/20]/ [USRNMKJ] BEGIN[1/22] END[1/28]]
                 ExprComp [ [US] BEGIN[1/19] END[1/20]/ [USRNMKJ] BEGIN[1/22] END[1/28]]
                  SimpleExpression [ [US] BEGIN[1/19] END[1/20]/ [USRNMKJ] BEGIN[1/22] END[1/28]]
                   SchemaTableColumn [ [US] BEGIN[1/19] END[1/20]/ [USRNMKJ] BEGIN[1/22] END[1/28]]
                    IDDot [ [US] BEGIN[1/19] END[1/20]/ [.] BEGIN[1/21] END[1/21]]
                     Identifier [ [US] BEGIN[1/19] END[1/20]/ [US] BEGIN[1/19] END[1/20]]
                    Identifier [ [USRNMKJ] BEGIN[1/22] END[1/28]/ [USRNMKJ] BEGIN[1/22] END[1/28]]
                Expr [ [TN] BEGIN[1/31] END[1/32]/ [USRID] BEGIN[1/34] END[1/38]]
                 ExprComp [ [TN] BEGIN[1/31] END[1/32]/ [USRID] BEGIN[1/34] END[1/38]]
                  SimpleExpression [ [TN] BEGIN[1/31] END[1/32]/ [USRID] BEGIN[1/34] END[1/38]]
                   SchemaTableColumn [ [TN] BEGIN[1/31] END[1/32]/ [USRID] BEGIN[1/34] END[1/38]]
                    IDDot [ [TN] BEGIN[1/31] END[1/32]/ [.] BEGIN[1/33] END[1/33]]
                     Identifier [ [TN] BEGIN[1/31] END[1/32]/ [TN] BEGIN[1/31] END[1/32]]
                    Identifier [ [USRID] BEGIN[1/34] END[1/38]/ [USRID] BEGIN[1/34] END[1/38]]
         Identifier [ [USRNMKJ] BEGIN[1/45] END[1/51]/ [USRNMKJ] BEGIN[1/45] END[1/51]]
        SelectColumnsElement [ [TE] BEGIN[2/9] END[2/10]/ [TENNM] BEGIN[2/12] END[2/16]]
         Expr [ [TE] BEGIN[2/9] END[2/10]/ [TENNM] BEGIN[2/12] END[2/16]]
          ExprComp [ [TE] BEGIN[2/9] END[2/10]/ [TENNM] BEGIN[2/12] END[2/16]]
           SimpleExpression [ [TE] BEGIN[2/9] END[2/10]/ [TENNM] BEGIN[2/12] END[2/16]]
            SchemaTableColumn [ [TE] BEGIN[2/9] END[2/10]/ [TENNM] BEGIN[2/12] END[2/16]]
             IDDot [ [TE] BEGIN[2/9] END[2/10]/ [.] BEGIN[2/11] END[2/11]]
              Identifier [ [TE] BEGIN[2/9] END[2/10]/ [TE] BEGIN[2/9] END[2/10]]
             Identifier [ [TENNM] BEGIN[2/12] END[2/16]/ [TENNM] BEGIN[2/12] END[2/16]]
        SelectColumnsElement [ [SZ] BEGIN[2/19] END[2/20]/ [SYZKKKRNO] BEGIN[2/22] END[2/30]]
         Expr [ [SZ] BEGIN[2/19] END[2/20]/ [SYZKKKRNO] BEGIN[2/22] END[2/30]]
          ExprComp [ [SZ] BEGIN[2/19] END[2/20]/ [SYZKKKRNO] BEGIN[2/22] END[2/30]]
           SimpleExpression [ [SZ] BEGIN[2/19] END[2/20]/ [SYZKKKRNO] BEGIN[2/22] END[2/30]]
            SchemaTableColumn [ [SZ] BEGIN[2/19] END[2/20]/ [SYZKKKRNO] BEGIN[2/22] END[2/30]]
             IDDot [ [SZ] BEGIN[2/19] END[2/20]/ [.] BEGIN[2/21] END[2/21]]
              Identifier [ [SZ] BEGIN[2/19] END[2/20]/ [SZ] BEGIN[2/19] END[2/20]]
             Identifier [ [SYZKKKRNO] BEGIN[2/22] END[2/30]/ [SYZKKKRNO] BEGIN[2/22] END[2/30]]
       From [ [FROM] BEGIN[3/2] END[3/5]/ [SYZKTENNO] BEGIN[9/48] END[9/56]]
        TableRefference [ [TNT_KAYAKU] BEGIN[3/7] END[3/16]/ [SYZKTENNO] BEGIN[9/48] END[9/56]]
         QueryTableExpressionClause [ [TNT_KAYAKU] BEGIN[3/7] END[3/16]/ [TN] BEGIN[3/18] END[3/19]]
          tableIdentifier [ [TNT_KAYAKU] BEGIN[3/7] END[3/16]/ [TNT_KAYAKU] BEGIN[3/7] END[3/16]]
          tableIdentifier [ [TN] BEGIN[3/18] END[3/19]/ [TN] BEGIN[3/18] END[3/19]]
         JoinedTable [ [LEFT] BEGIN[4/2] END[4/5]/ [USRID] BEGIN[5/21] END[5/25]]
          JoinType [ [LEFT] BEGIN[4/2] END[4/5]/ [LEFT] BEGIN[4/2] END[4/5]]
          TableRefference [ [UNS] BEGIN[4/13] END[4/15]/ [US] BEGIN[4/17] END[4/18]]
           QueryTableExpressionClause [ [UNS] BEGIN[4/13] END[4/15]/ [US] BEGIN[4/17] END[4/18]]
            tableIdentifier [ [UNS] BEGIN[4/13] END[4/15]/ [UNS] BEGIN[4/13] END[4/15]]
            tableIdentifier [ [US] BEGIN[4/17] END[4/18]/ [US] BEGIN[4/17] END[4/18]]
          Condition [ [US] BEGIN[5/7] END[5/8]/ [USRID] BEGIN[5/21] END[5/25]]
           ConditionElement [ [US] BEGIN[5/7] END[5/8]/ [USRID] BEGIN[5/21] END[5/25]]
            Expr [ [US] BEGIN[5/7] END[5/8]/ [USRID] BEGIN[5/10] END[5/14]]
             ExprComp [ [US] BEGIN[5/7] END[5/8]/ [USRID] BEGIN[5/10] END[5/14]]
              SimpleExpression [ [US] BEGIN[5/7] END[5/8]/ [USRID] BEGIN[5/10] END[5/14]]
               SchemaTableColumn [ [US] BEGIN[5/7] END[5/8]/ [USRID] BEGIN[5/10] END[5/14]]
                IDDot [ [US] BEGIN[5/7] END[5/8]/ [.] BEGIN[5/9] END[5/9]]
                 Identifier [ [US] BEGIN[5/7] END[5/8]/ [US] BEGIN[5/7] END[5/8]]
                Identifier [ [USRID] BEGIN[5/10] END[5/14]/ [USRID] BEGIN[5/10] END[5/14]]
            SimpleComparisonCondition [ [=] BEGIN[5/16] END[5/16]/ [USRID] BEGIN[5/21] END[5/25]]
             CompareOperator [ [=] BEGIN[5/16] END[5/16]/ [=] BEGIN[5/16] END[5/16]]
              CompareEqualableOperator [ [=] BEGIN[5/16] END[5/16]/ [=] BEGIN[5/16] END[5/16]]
             ConditionR3 [ [TN] BEGIN[5/18] END[5/19]/ [USRID] BEGIN[5/21] END[5/25]]
              Expr [ [TN] BEGIN[5/18] END[5/19]/ [USRID] BEGIN[5/21] END[5/25]]
               ExprComp [ [TN] BEGIN[5/18] END[5/19]/ [USRID] BEGIN[5/21] END[5/25]]
                SimpleExpression [ [TN] BEGIN[5/18] END[5/19]/ [USRID] BEGIN[5/21] END[5/25]]
                 SchemaTableColumn [ [TN] BEGIN[5/18] END[5/19]/ [USRID] BEGIN[5/21] END[5/25]]
                  IDDot [ [TN] BEGIN[5/18] END[5/19]/ [.] BEGIN[5/20] END[5/20]]
                   Identifier [ [TN] BEGIN[5/18] END[5/19]/ [TN] BEGIN[5/18] END[5/19]]
                  Identifier [ [USRID] BEGIN[5/21] END[5/25]/ [USRID] BEGIN[5/21] END[5/25]]
         JoinedTable [ [LEFT] BEGIN[6/2] END[6/5]/ [TNTSTENNO] BEGIN[7/21] END[7/29]]
          JoinType [ [LEFT] BEGIN[6/2] END[6/5]/ [LEFT] BEGIN[6/2] END[6/5]]
          TableRefference [ [TOPINF] BEGIN[6/12] END[6/17]/ [TE] BEGIN[6/19] END[6/20]]
           QueryTableExpressionClause [ [TOPINF] BEGIN[6/12] END[6/17]/ [TE] BEGIN[6/19] END[6/20]]
            tableIdentifier [ [TOPINF] BEGIN[6/12] END[6/17]/ [TOPINF] BEGIN[6/12] END[6/17]]
            tableIdentifier [ [TE] BEGIN[6/19] END[6/20]/ [TE] BEGIN[6/19] END[6/20]]
          Condition [ [TE] BEGIN[7/7] END[7/8]/ [TNTSTENNO] BEGIN[7/21] END[7/29]]
           ConditionElement [ [TE] BEGIN[7/7] END[7/8]/ [TNTSTENNO] BEGIN[7/21] END[7/29]]
            Expr [ [TE] BEGIN[7/7] END[7/8]/ [TENNO] BEGIN[7/10] END[7/14]]
             ExprComp [ [TE] BEGIN[7/7] END[7/8]/ [TENNO] BEGIN[7/10] END[7/14]]
              SimpleExpression [ [TE] BEGIN[7/7] END[7/8]/ [TENNO] BEGIN[7/10] END[7/14]]
               SchemaTableColumn [ [TE] BEGIN[7/7] END[7/8]/ [TENNO] BEGIN[7/10] END[7/14]]
                IDDot [ [TE] BEGIN[7/7] END[7/8]/ [.] BEGIN[7/9] END[7/9]]
                 Identifier [ [TE] BEGIN[7/7] END[7/8]/ [TE] BEGIN[7/7] END[7/8]]
                Identifier [ [TENNO] BEGIN[7/10] END[7/14]/ [TENNO] BEGIN[7/10] END[7/14]]
            SimpleComparisonCondition [ [=] BEGIN[7/16] END[7/16]/ [TNTSTENNO] BEGIN[7/21] END[7/29]]
             CompareOperator [ [=] BEGIN[7/16] END[7/16]/ [=] BEGIN[7/16] END[7/16]]
              CompareEqualableOperator [ [=] BEGIN[7/16] END[7/16]/ [=] BEGIN[7/16] END[7/16]]
             ConditionR3 [ [TN] BEGIN[7/18] END[7/19]/ [TNTSTENNO] BEGIN[7/21] END[7/29]]
              Expr [ [TN] BEGIN[7/18] END[7/19]/ [TNTSTENNO] BEGIN[7/21] END[7/29]]
               ExprComp [ [TN] BEGIN[7/18] END[7/19]/ [TNTSTENNO] BEGIN[7/21] END[7/29]]
                SimpleExpression [ [TN] BEGIN[7/18] END[7/19]/ [TNTSTENNO] BEGIN[7/21] END[7/29]]
                 SchemaTableColumn [ [TN] BEGIN[7/18] END[7/19]/ [TNTSTENNO] BEGIN[7/21] END[7/29]]
                  IDDot [ [TN] BEGIN[7/18] END[7/19]/ [.] BEGIN[7/20] END[7/20]]
                   Identifier [ [TN] BEGIN[7/18] END[7/19]/ [TN] BEGIN[7/18] END[7/19]]
                  Identifier [ [TNTSTENNO] BEGIN[7/21] END[7/29]/ [TNTSTENNO] BEGIN[7/21] END[7/29]]
         JoinedTable [ [LEFT] BEGIN[8/2] END[8/5]/ [SYZKTENNO] BEGIN[9/48] END[9/56]]
          JoinType [ [LEFT] BEGIN[8/2] END[8/5]/ [LEFT] BEGIN[8/2] END[8/5]]
          TableRefference [ [SZZLINF] BEGIN[8/12] END[8/18]/ [SZ] BEGIN[8/20] END[8/21]]
           QueryTableExpressionClause [ [SZZLINF] BEGIN[8/12] END[8/18]/ [SZ] BEGIN[8/20] END[8/21]]
            tableIdentifier [ [SZZLINF] BEGIN[8/12] END[8/18]/ [SZZLINF] BEGIN[8/12] END[8/18]]
            tableIdentifier [ [SZ] BEGIN[8/20] END[8/21]/ [SZ] BEGIN[8/20] END[8/21]]
          Condition [ [TN] BEGIN[9/7] END[9/8]/ [SYZKTENNO] BEGIN[9/48] END[9/56]]
           ConditionElement [ [TN] BEGIN[9/7] END[9/8]/ [USRID] BEGIN[9/21] END[9/25]]
            Expr [ [TN] BEGIN[9/7] END[9/8]/ [USRID] BEGIN[9/10] END[9/14]]
             ExprComp [ [TN] BEGIN[9/7] END[9/8]/ [USRID] BEGIN[9/10] END[9/14]]
              SimpleExpression [ [TN] BEGIN[9/7] END[9/8]/ [USRID] BEGIN[9/10] END[9/14]]
               SchemaTableColumn [ [TN] BEGIN[9/7] END[9/8]/ [USRID] BEGIN[9/10] END[9/14]]
                IDDot [ [TN] BEGIN[9/7] END[9/8]/ [.] BEGIN[9/9] END[9/9]]
                 Identifier [ [TN] BEGIN[9/7] END[9/8]/ [TN] BEGIN[9/7] END[9/8]]
                Identifier [ [USRID] BEGIN[9/10] END[9/14]/ [USRID] BEGIN[9/10] END[9/14]]
            SimpleComparisonCondition [ [=] BEGIN[9/16] END[9/16]/ [USRID] BEGIN[9/21] END[9/25]]
             CompareOperator [ [=] BEGIN[9/16] END[9/16]/ [=] BEGIN[9/16] END[9/16]]
              CompareEqualableOperator [ [=] BEGIN[9/16] END[9/16]/ [=] BEGIN[9/16] END[9/16]]
             ConditionR3 [ [SZ] BEGIN[9/18] END[9/19]/ [USRID] BEGIN[9/21] END[9/25]]
              Expr [ [SZ] BEGIN[9/18] END[9/19]/ [USRID] BEGIN[9/21] END[9/25]]
               ExprComp [ [SZ] BEGIN[9/18] END[9/19]/ [USRID] BEGIN[9/21] END[9/25]]
                SimpleExpression [ [SZ] BEGIN[9/18] END[9/19]/ [USRID] BEGIN[9/21] END[9/25]]
                 SchemaTableColumn [ [SZ] BEGIN[9/18] END[9/19]/ [USRID] BEGIN[9/21] END[9/25]]
                  IDDot [ [SZ] BEGIN[9/18] END[9/19]/ [.] BEGIN[9/20] END[9/20]]
                   Identifier [ [SZ] BEGIN[9/18] END[9/19]/ [SZ] BEGIN[9/18] END[9/19]]
                  Identifier [ [USRID] BEGIN[9/21] END[9/25]/ [USRID] BEGIN[9/21] END[9/25]]
           ConditionElement [ [TN] BEGIN[9/31] END[9/32]/ [SYZKTENNO] BEGIN[9/48] END[9/56]]
            Expr [ [TN] BEGIN[9/31] END[9/32]/ [TNTIOIOO] BEGIN[9/34] END[9/41]]
             ExprComp [ [TN] BEGIN[9/31] END[9/32]/ [TNTIOIOO] BEGIN[9/34] END[9/41]]
              SimpleExpression [ [TN] BEGIN[9/31] END[9/32]/ [TNTIOIOO] BEGIN[9/34] END[9/41]]
               SchemaTableColumn [ [TN] BEGIN[9/31] END[9/32]/ [TNTIOIOO] BEGIN[9/34] END[9/41]]
                IDDot [ [TN] BEGIN[9/31] END[9/32]/ [.] BEGIN[9/33] END[9/33]]
                 Identifier [ [TN] BEGIN[9/31] END[9/32]/ [TN] BEGIN[9/31] END[9/32]]
                Identifier [ [TNTIOIOO] BEGIN[9/34] END[9/41]/ [TNTIOIOO] BEGIN[9/34] END[9/41]]
            SimpleComparisonCondition [ [=] BEGIN[9/43] END[9/43]/ [SYZKTENNO] BEGIN[9/48] END[9/56]]
             CompareOperator [ [=] BEGIN[9/43] END[9/43]/ [=] BEGIN[9/43] END[9/43]]
              CompareEqualableOperator [ [=] BEGIN[9/43] END[9/43]/ [=] BEGIN[9/43] END[9/43]]
             ConditionR3 [ [SZ] BEGIN[9/45] END[9/46]/ [SYZKTENNO] BEGIN[9/48] END[9/56]]
              Expr [ [SZ] BEGIN[9/45] END[9/46]/ [SYZKTENNO] BEGIN[9/48] END[9/56]]
               ExprComp [ [SZ] BEGIN[9/45] END[9/46]/ [SYZKTENNO] BEGIN[9/48] END[9/56]]
                SimpleExpression [ [SZ] BEGIN[9/45] END[9/46]/ [SYZKTENNO] BEGIN[9/48] END[9/56]]
                 SchemaTableColumn [ [SZ] BEGIN[9/45] END[9/46]/ [SYZKTENNO] BEGIN[9/48] END[9/56]]
                  IDDot [ [SZ] BEGIN[9/45] END[9/46]/ [.] BEGIN[9/47] END[9/47]]
                   Identifier [ [SZ] BEGIN[9/45] END[9/46]/ [SZ] BEGIN[9/45] END[9/46]]
                  Identifier [ [SYZKTENNO] BEGIN[9/48] END[9/56]/ [SYZKTENNO] BEGIN[9/48] END[9/56]]
       WhereClause [ [WHERE] BEGIN[10/2] END[10/6]/ ['9990000011'] BEGIN[10/26] END[10/37]]
        Condition [ [TN] BEGIN[10/8] END[10/9]/ ['9990000011'] BEGIN[10/26] END[10/37]]
         ConditionElement [ [TN] BEGIN[10/8] END[10/9]/ ['9990000011'] BEGIN[10/26] END[10/37]]
          Expr [ [TN] BEGIN[10/8] END[10/9]/ [TNTKAYAKUID] BEGIN[10/11] END[10/21]]
           ExprComp [ [TN] BEGIN[10/8] END[10/9]/ [TNTKAYAKUID] BEGIN[10/11] END[10/21]]
            SimpleExpression [ [TN] BEGIN[10/8] END[10/9]/ [TNTKAYAKUID] BEGIN[10/11] END[10/21]]
             SchemaTableColumn [ [TN] BEGIN[10/8] END[10/9]/ [TNTKAYAKUID] BEGIN[10/11] END[10/21]]
              IDDot [ [TN] BEGIN[10/8] END[10/9]/ [.] BEGIN[10/10] END[10/10]]
               Identifier [ [TN] BEGIN[10/8] END[10/9]/ [TN] BEGIN[10/8] END[10/9]]
              Identifier [ [TNTKAYAKUID] BEGIN[10/11] END[10/21]/ [TNTKAYAKUID] BEGIN[10/11] END[10/21]]
          SimpleComparisonCondition [ [=] BEGIN[10/23] END[10/23]/ ['9990000011'] BEGIN[10/26] END[10/37]]
           CompareOperator [ [=] BEGIN[10/23] END[10/23]/ [=] BEGIN[10/23] END[10/23]]
            CompareEqualableOperator [ [=] BEGIN[10/23] END[10/23]/ [=] BEGIN[10/23] END[10/23]]
           ConditionR3 [ ['9990000011'] BEGIN[10/26] END[10/37]/ ['9990000011'] BEGIN[10/26] END[10/37]]
            Expr [ ['9990000011'] BEGIN[10/26] END[10/37]/ ['9990000011'] BEGIN[10/26] END[10/37]]
             ExprComp [ ['9990000011'] BEGIN[10/26] END[10/37]/ ['9990000011'] BEGIN[10/26] END[10/37]]
              SimpleExpression [ ['9990000011'] BEGIN[10/26] END[10/37]/ ['9990000011'] BEGIN[10/26] END[10/37]]
               Literal [ ['9990000011'] BEGIN[10/26] END[10/37]/ ['9990000011'] BEGIN[10/26] END[10/37]]
		
Contents Assist
			ParserFactory ff = new WolfParserFactory();

			System.out.println("--- input SQL START---");
			System.out.println(input);
			System.out.println("--- input SQL END ---");

			DBRoot root = DBResourceUtil.loadDBRoot(new File(
					"D:/eclipse35/serialized/640372439"));
			ProposalableParserUtil util = ff.createParserUtil(input, root);
			util.parse();
			util.setRowColumn(new RowColumn(1, 10));
			ASTProposalableAssist assist = util.getASTProposalableAssist();

			util.dumpNodes();
			System.out.println("----------------------------------------");
			System.out.println("  assist = " + assist);

			IDBResource[] proposals = assist.proposalDBResources();
			for (int i = 0; i < proposals.length; i++) {
				System.out.println("  ASSIST[" + i + "]" + proposals[i].getName());
			}
		
--- input SQL START---
SELECT CO
FROM COUNTRIES
--- input SQL END ---
 Start [ [SELECT] BEGIN[1/1] END[1/6]/ [COUNTRIES] BEGIN[2/6] END[2/14]]
  DML [ [SELECT] BEGIN[1/1] END[1/6]/ [COUNTRIES] BEGIN[2/6] END[2/14]]
   SelectBase [ [SELECT] BEGIN[1/1] END[1/6]/ [COUNTRIES] BEGIN[2/6] END[2/14]]
    SelectBaseAndUnion [ [SELECT] BEGIN[1/1] END[1/6]/ [COUNTRIES] BEGIN[2/6] END[2/14]]
     SelectSecond [ [SELECT] BEGIN[1/1] END[1/6]/ [COUNTRIES] BEGIN[2/6] END[2/14]]
      SelectThird [ [SELECT] BEGIN[1/1] END[1/6]/ [COUNTRIES] BEGIN[2/6] END[2/14]]
       SelectColumns [ [CO] BEGIN[1/8] END[1/9]/ [CO] BEGIN[1/8] END[1/9]]
        SelectColumnsElement [ [CO] BEGIN[1/8] END[1/9]/ [CO] BEGIN[1/8] END[1/9]]
         Expr [ [CO] BEGIN[1/8] END[1/9]/ [CO] BEGIN[1/8] END[1/9]]
          ExprComp [ [CO] BEGIN[1/8] END[1/9]/ [CO] BEGIN[1/8] END[1/9]]
           SimpleExpression [ [CO] BEGIN[1/8] END[1/9]/ [CO] BEGIN[1/8] END[1/9]]
            SchemaTableColumn [ [CO] BEGIN[1/8] END[1/9]/ [CO] BEGIN[1/8] END[1/9]]
             Identifier [ [CO] BEGIN[1/8] END[1/9]/ [CO] BEGIN[1/8] END[1/9]]
       From [ [FROM] BEGIN[2/1] END[2/4]/ [COUNTRIES] BEGIN[2/6] END[2/14]]
        TableRefference [ [COUNTRIES] BEGIN[2/6] END[2/14]/ [COUNTRIES] BEGIN[2/6] END[2/14]]
         QueryTableExpressionClause [ [COUNTRIES] BEGIN[2/6] END[2/14]/ [COUNTRIES] BEGIN[2/6] END[2/14]]
          tableIdentifier [ [COUNTRIES] BEGIN[2/6] END[2/14]/ [COUNTRIES] BEGIN[2/6] END[2/14]]
----------------------------------------
  assist = Assist:Column..[COUNTRY_ID CHAR(2) 【Primary key of countries table.】, COUNTRY_NAME VARCHAR2(40) 【Country name】]
  ASSIST[0]COUNTRY_ID
  ASSIST[1]COUNTRY_NAME
		

Format SQL Statement
			ParserFactory ff = new WolfParserFactory();

			System.out.println("--- input SQL START---");
			System.out.println(input);
			System.out.println("--- input SQL END ---");

			ProposalableParserUtil util = ff.createParserUtil(input, null);
			util.parse();

			ASTFormatingInfo visit = new ASTFormatingInfo(input);
			visit.col_num = 2;
			visit.left = true;
			// visit.setSelectColumnCommentOn(true);
			System.out.println(util.getFormattedString(visit));
		
--- input SQL START---
SELECT pk,name,data, length(data)
FROM hr.bl where name='aa' and pk=5 order by 3
--- input SQL END ---
SELECT 
  pk,   name, 
  data, length(data)
FROM
  hr.bl
WHERE
  name='aa'
  and pk=5
ORDER BY
  3 

		
Get Bind Parameter's information Without DBResource
			System.out.println("--- input SQL START---");
			System.out.println(input);
			System.out.println("--- input SQL END ---");

			ParserUtil util = ff.createParserUtil(input);
			util.parse();
			BindInfo[] infos = util.binds();
			for (int i = 0; i < infos.length; i++) {
				BindInfo bi = infos[i];
				System.out.print("[" + bi.getTarget() + "/"
						+ bi.getTypeString() + "]");
				IToken token = bi.getQuestionToken();
				System.out.println(" ROW/COL[" + token.getBeginLine() + "/"
						+ token.getBeginColumn() + "]");
			}
		
--- input SQL START---
INSERT INTO hr.hoge_add 
 (col,tm,num,dt,num2) 
 values ('33444b',?,23,? ,?)
--- input SQL END ---
[tm/STRING] ROW/COL[3/19]
[dt/STRING] ROW/COL[3/24]
[num2/STRING] ROW/COL[3/27]
		
Get Bind Parameter's information With DBResource
			ParserFactory ff = new WolfParserFactory();

			System.out.println("--- input SQL START---");
			System.out.println(input);
			System.out.println("--- input SQL END ---");

			DBRoot root = DBResourceUtil.loadDBRoot(new File(
			"D:/eclipse35/serialized/640372439"));
			ProposalableParserUtil util = ff.createParserUtil(input, root);
			util.parse();
			BindInfo[] infos = util.binds();
			for (int i = 0; i < infos.length; i++) {
				BindInfo bi = infos[i];
				System.out.print("[" + bi.getTarget() + "/"
						+ bi.getTypeString() + "]");
				IToken token = bi.getQuestionToken();
				System.out.println(" ROW/COL[" + token.getBeginLine() + "/"
						+ token.getBeginColumn() + "]");
			}
		
--- input SQL START---
INSERT INTO hr.hoge_add 
 (col,tm,num,dt,num2) 
 values ('33444b',?,23,? ,?)
--- input SQL END ---
[tm/TIMESTAMP] ROW/COL[3/19]
[dt/DATE] ROW/COL[3/24]
[num2/NUMERIC] ROW/COL[3/27]
		

How to create DBResource
			DBRoot root = new DBRoot();
			IDBSchema mschema = new DBSchema(root);
			mschema.setName("Scott");
			root.putResource(mschema.getName(), mschema);
			root.setDefaultSchema(mschema);

			DBTable dbTable = new DBTable(mschema);
			dbTable.setName("EMP");
			dbTable.setTableType("TABLE");
			mschema.putTable(dbTable);

			String[] columns = { "NAME", "OLD" };
			for (int i = 0; i < columns.length; i++) {
				DBColumn col = new DBColumn(dbTable);
				col.setName(columns[i]);
				col.setComment("comment_" + i);
				col.setDataType(Types.VARCHAR);
				col.setDataTypeString("VARCHAR2");
				col.setSize(10);
				col.setDecimalDigits(0);
				col.setNullable(DatabaseMetaData.attributeNullable);
				col.setPKey(true);
				dbTable.putResource(col.getUName(), col);
			}

			IDBTable t = root.getDefaultSchema().getTable("EMP");
			System.out.println("EMP.OLD=" + t.getResource("OLD"));
			System.out.println("EMP.NAME=" + t.getResource("NAME"));
		
EMP.OLD=OLD VARCHAR2(10) 【comment_1】
EMP.NAME=NAME VARCHAR2(10) 【comment_0】