File tree Expand file tree Collapse file tree
backend/modules/src/main/java/org.jumpserver.chen.modules/oracle Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11package org .jumpserver .chen .modules .oracle ;
22
3- import com .alibaba .druid .DbType ;
43import com .alibaba .druid .sql .SQLUtils ;
4+ import com .alibaba .druid .sql .parser .ParserException ;
55import org .jumpserver .chen .framework .datasource .ConnectionManager ;
66import org .jumpserver .chen .framework .datasource .base .BaseSQLActuator ;
77import org .jumpserver .chen .framework .datasource .sql .SQL ;
@@ -66,8 +66,15 @@ public SQLExecutePlan createPlan(SQL sql) throws SQLException {
6666
6767 @ Override
6868 public List <String > parseSQL (SQL sql ) {
69- return SQLUtils .parseStatements (sql .getSql (), DbType .ali_oracle ).stream ()
70- .map (stmt -> SQLUtils .toSQLString (stmt , DbType .ali_oracle ))
69+ var dbType = this .getDbType ();
70+ var statements = SQLUtils .parseStatements (sql .getSql (), dbType );
71+ for (var i = 0 ; i < statements .size () - 1 ; i ++) {
72+ if (!statements .get (i ).isAfterSemi ()) {
73+ throw new ParserException ("Multiple SQL statements must be separated by semicolons" );
74+ }
75+ }
76+ return statements .stream ()
77+ .map (stmt -> SQLUtils .toSQLString (stmt , dbType ))
7178 .toList ();
7279 }
7380}
You can’t perform that action at this time.
0 commit comments