From 82ef6aafd2683fe244d75bccad3d26381aa111a6 Mon Sep 17 00:00:00 2001 From: wenshao Date: Sun, 4 Aug 2013 21:54:40 +0800 Subject: [PATCH] add testcase & bug fixed --- .../dialect/oracle/parser/OracleExprParser.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/alibaba/druid/sql/dialect/oracle/parser/OracleExprParser.java b/src/main/java/com/alibaba/druid/sql/dialect/oracle/parser/OracleExprParser.java index e01b028379..1bcced37c9 100644 --- a/src/main/java/com/alibaba/druid/sql/dialect/oracle/parser/OracleExprParser.java +++ b/src/main/java/com/alibaba/druid/sql/dialect/oracle/parser/OracleExprParser.java @@ -83,7 +83,6 @@ import com.alibaba.druid.sql.parser.Token; public class OracleExprParser extends SQLExprParser { - public boolean allowStringAdditive = false; /** @@ -200,8 +199,15 @@ public class OracleExprParser extends SQLExprParser { } } - SQLName typeExpr = name(); - String typeName = typeExpr.toString(); + String typeName; + if (identifierEquals("LONG")) { + lexer.nextToken(); + acceptIdentifier("RAW"); + typeName = "LONG RAW"; + } else { + SQLName typeExpr = name(); + typeName = typeExpr.toString(); + } if ("TIMESTAMP".equalsIgnoreCase(typeName)) { OracleDataTypeTimestamp timestamp = new OracleDataTypeTimestamp(); @@ -263,6 +269,8 @@ public class OracleExprParser extends SQLExprParser { throw new ParserException("syntax error : " + lexer.token() + " " + lexer.stringVal()); } } + + SQLDataType dataType = new SQLDataTypeImpl(typeName); return parseDataTypeRest(dataType);