| [HOME] [What is Wolf SQL Parser] [download] [How to Use] | |
What is Wolf SQL ParserParserWolf 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 ] downloadSourceforge[WolfSQLParser]How to UseParse 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 3Get 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】 |
|