Closed
Description
Describe the bug
Lexical error for Oracle update statement when where clause has backslash in string literal.
To Reproduce
Steps to reproduce the behavior:
- update PARAM_TBL set PARA_DESC = null where PARA_DESC = '\' and DEFAULT_VALUE = '\'
- Parsing this SQL using JSqlParser with this statements:
import net.sf.jsqlparser.parser.CCJSqlParserUtil;
public class SqlParse {
public static void main(String[] args) throws Exception {
String sql = "update PARAM_TBL set PARA_DESC = null where PARA_DESC = '\\' and DEFAULT_VALUE = '\\'";
CCJSqlParserUtil.parse(sql);
}
}
- Exception
Exception in thread "main" net.sf.jsqlparser.JSQLParserException: Lexical error at line 1, column 82. Encountered: "\\" (92), after : ""
at net.sf.jsqlparser.parser.CCJSqlParserUtil.parseStatement(CCJSqlParserUtil.java:165)
at net.sf.jsqlparser.parser.CCJSqlParserUtil.parse(CCJSqlParserUtil.java:59)
at net.sf.jsqlparser.parser.CCJSqlParserUtil.parse(CCJSqlParserUtil.java:37)
at SqlParse.main(SqlParse.java:7)
Caused by: net.sf.jsqlparser.parser.TokenMgrException: Lexical error at line 1, column 82. Encountered: "\\" (92), after : ""
at net.sf.jsqlparser.parser.CCJSqlParserTokenManager.getNextToken(CCJSqlParserTokenManager.java:4759)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_scan_token(CCJSqlParser.java:26392)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_PrimaryExpression_3279_9_631(CCJSqlParser.java:24982)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_PrimaryExpression_3217_5_117(CCJSqlParser.java:25491)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_BitwiseXor_3187_5_184(CCJSqlParser.java:25612)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_MultiplicativeExpression_3157_5_179(CCJSqlParser.java:25743)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_AdditiveExpression_3133_5_360(CCJSqlParser.java:25826)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_BitwiseAndOr_3101_5_176(CCJSqlParser.java:26047)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_ConcatExpression_3078_5_258(CCJSqlParser.java:26100)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_SimpleExpression_3054_5_115(CCJSqlParser.java:18471)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3_93(CCJSqlParser.java:18642)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_ComparisonItem_3008_3_158(CCJSqlParser.java:18744)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_RegularCondition_2665_9_334(CCJSqlParser.java:20825)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_RegularCondition_2633_5_157(CCJSqlParser.java:21160)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_Condition_2616_9_310(CCJSqlParser.java:21226)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3R_Condition_2614_5_154(CCJSqlParser.java:21260)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_3_70(CCJSqlParser.java:21352)
at net.sf.jsqlparser.parser.CCJSqlParser.jj_2_70(CCJSqlParser.java:17723)
at net.sf.jsqlparser.parser.CCJSqlParser.AndExpression(CCJSqlParser.java:8424)
at net.sf.jsqlparser.parser.CCJSqlParser.OrExpression(CCJSqlParser.java:8400)
at net.sf.jsqlparser.parser.CCJSqlParser.Expression(CCJSqlParser.java:8371)
at net.sf.jsqlparser.parser.CCJSqlParser.WhereClause(CCJSqlParser.java:7284)
at net.sf.jsqlparser.parser.CCJSqlParser.Update(CCJSqlParser.java:1408)
at net.sf.jsqlparser.parser.CCJSqlParser.SingleStatement(CCJSqlParser.java:138)
at net.sf.jsqlparser.parser.CCJSqlParser.Statement(CCJSqlParser.java:81)
at net.sf.jsqlparser.parser.CCJSqlParserUtil.parseStatement(CCJSqlParserUtil.java:163)
... 3 more
System
- Oracle 10
- Java 8
- JSqlParser 4.0
Metadata
Metadata
Assignees
Labels
No labels