improved oracle sql parser trim option, fixed issue #1327

This commit is contained in:
wenshao
2016-07-15 20:17:06 +08:00
parent e2835fdc69
commit 9f07744b03
3 changed files with 88 additions and 4 deletions
@@ -508,9 +508,13 @@ public class OracleExprParser extends SQLExprParser {
methodExpr.putAttribute("trim_option", lexer.stringVal());
lexer.nextToken();
}
SQLExpr trim_character = this.primary();
trim_character.setParent(methodExpr);
methodExpr.putAttribute("trim_character", trim_character);
if (lexer.token() != Token.FROM) {
SQLExpr trim_character = this.primary();
trim_character.setParent(methodExpr);
methodExpr.putAttribute("trim_character", trim_character);
}
if (lexer.token() == Token.FROM) {
lexer.nextToken();
SQLExpr trim_source = this.expr();
@@ -480,7 +480,9 @@ public class OracleOutputVisitor extends SQLASTOutputVisitor implements OracleAS
x.getExpr().accept(this);
if (x.getType() != null) {
print(' ');
print0(x.getType().name().toUpperCase());
String typeName = x.getType().name();
print0(ucase ? typeName.toUpperCase() : typeName.toLowerCase());
}
if (x.getNullsOrderType() != null) {