bug fix for oralce sql wall, fix #4065

This commit is contained in:
高铁
2020-12-12 16:12:16 +08:00
parent f514f65c12
commit ae675fec72
2 changed files with 13 additions and 1 deletions
@@ -2568,7 +2568,8 @@ public class WallVisitorUtils {
allow = config.isUpdateAllow();
denyMessage = "update not allow";
errorCode = ErrorCode.UPDATE_NOT_ALLOW;
} else if (x instanceof OracleMultiInsertStatement) {
} else if (x instanceof OracleMultiInsertStatement
|| x instanceof OracleMultiInsertStatement.InsertIntoClause) {
allow = true;
denyMessage = "multi-insert not allow";
errorCode = ErrorCode.INSERT_NOT_ALLOW;
@@ -27,4 +27,15 @@ public class OracleWallTest7 extends TestCase {
+ "end";
Assert.assertTrue(WallUtils.isValidateOracle(sql));
}
public void test_insert_all() throws Exception {
String sql = //
"INSERT ALL\n" +
" INTO mytable (column1, column2, column_n) VALUES (expr1, expr2, expr_n)\n" +
" INTO mytable (column1, column2, column_n) VALUES (expr1, expr2, expr_n)\n" +
" INTO mytable (column1, column2, column_n) VALUES (expr1, expr2, expr_n)\n" +
"SELECT * FROM dual;";
assertTrue(WallUtils.isValidateOracle(sql));
}
}