CREATE USER Person identified by 2012;GRANT ALL PRIVILEGES TO Person;
Oracle 11g (GUI) 成功执行了这些语句。但是,当我完全复制并粘贴上面的语句并尝试使用执行它时executeUpdate(String sql)
,我得到了下面的异常。为什么?
java.sql.SQLSyntaxErrorException: ORA-00911: invalid character
您不应该将两个不同的 SQL 语句视为一个。JDBC 驱动程序无法执行将作为一个字符串传递的两条语句。
尝试将它们执行为
Statement stmt = conn.createStatement();
stmt.executeUpdate("CREATE USER Person identified by 2012");
stmt.executeUpdate("GRANT ALL PRIVILEGES TO Person;");
应该这样做。干杯。
取决于您的数据库 jdbc 驱动程序,该驱动程序将不支持在一个“executeUpdate”中执行两个语句。您必须执行以下操作:
Statement stmt = conn.createStatement();
for(String statement : statements) {
stmt.addBatch(statement);
}
stmt.executeBatch();