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