improved oracle sql parser. for pl/sql in_out parameter.

This commit is contained in:
wenshao
2017-05-12 01:00:45 +08:00
parent bee259a0b4
commit 9c971bc013
5 changed files with 120 additions and 3 deletions
@@ -1095,13 +1095,30 @@ public class OracleStatementParser extends SQLStatementParser {
parameter.setDataType(dataType);
parameter.setDefaultValue(new SQLQueryExpr(select));
} else if (lexer.token() == Token.PROCEDURE) {
break;
} else {
parameter.setName(this.exprParser.name());
if (lexer.token() == Token.IN) {
lexer.nextToken();
parameter.setParamType(SQLParameter.ParameterType.IN);
if (lexer.token() == Token.OUT) {
lexer.nextToken();
parameter.setParamType(SQLParameter.ParameterType.INOUT);
} else {
parameter.setParamType(SQLParameter.ParameterType.IN);
}
} else if (lexer.token() == Token.OUT) {
lexer.nextToken();
parameter.setParamType(SQLParameter.ParameterType.OUT);
}
if (identifierEquals("NOCOPY")) {
lexer.nextToken();
parameter.setNoCopy(true);
}
parameter.setDataType(this.exprParser.parseDataType());
if (lexer.token() == Token.COLONEQ) {