bug fixed for oracle trim function

This commit is contained in:
wenshao
2013-12-24 10:27:52 +08:00
parent 6f5bb55384
commit 90d262fc12
5 changed files with 113 additions and 102 deletions
@@ -85,6 +85,7 @@ public class OracleExprParser extends SQLExprParser {
public boolean allowStringAdditive = false;
/**
@@ -504,9 +505,11 @@ public class OracleExprParser extends SQLExprParser {
SQLExpr trim_character = this.primary();
trim_character.setParent(methodExpr);
methodExpr.putAttribute("trim_character", trim_character);
accept(Token.FROM);
SQLExpr trim_source = this.expr();
methodExpr.addParameter(trim_source);
if (lexer.token() == Token.FROM) {
lexer.nextToken();
SQLExpr trim_source = this.expr();
methodExpr.addParameter(trim_source);
}
accept(Token.RPAREN);
return primaryRest(methodExpr);
@@ -3398,8 +3398,10 @@ public class OracleOutputVisitor extends SQLASTOutputVisitor implements OracleAS
print(' ');
}
trim_character.accept(this);
print(" FROM ");
x.getParameters().get(0).accept(this);
if (x.getParameters().size() > 0) {
print(" FROM ");
x.getParameters().get(0).accept(this);
}
print(")");
return false;
}