在shardingjdbc中解析oracle sql时区分了大小写,小写时会无法匹配。
原始Sql:
INSERT INTO USER_INFO ( ID, USER_ID, USER_NAME ) values (#{id}, #{userId}, #{userName})
修改后的Sql:
INSERT INTO USER_INFO ( ID, USER_ID, USER_NAME ) VALUES (#{id}, #{userId}, #{userName})
values关键字区分大小写。
查看sharding的源代码:
package org.apache.shardingsphere.sql.parser.autogen;
public class OracleStatementParser extends Parser {
try {
enterOuterAlt(_localctx, 1);
{
setState(1886);
insertIntoClause();
setState(1892);
_errHandler.sync(this);
switch (_input.LA(1)) {
case VALUES:
{
setState(1887);
insertValuesClause();
setState(1889);
_errHandler.sync(this);
_la = _input.LA(1);
if (_la==RETURN || _la==RETURNING) {
{
setState(1888);
returningClause();
}
}
}
break;
VALUES关键字为常量。