创建用户配额条款缺失或无效选项

问题描述

在 DBeaver 或 sqplus 上执行这个语句就像一个魅力

CREATE USER flyway IDENTIFIED BY password 
DEFAULT TABLESPACE system  
TEMPORARY TABLESPACE system 
QUOTA 20M on system;

但是如果我像这样在javapreparedstatement中使用它

Class.forName("oracle.jdbc.driver.OracleDriver");

    //step2 create  the connection object
    Connection con = DriverManager.getConnection(
            "jdbc:oracle:thin:@localhost:1521:xe","myuser","mypassword")

    //step3 create the statement object
    Statement stmt = con.createStatement();

    //step4 execute query
    stmt.executeUpdate("CREATE USER flyway IDENTIFIED BY password "+
            "DEFAULT TABLESPACE system  "+
            "TEMPORARY TABLESPACE system "+
            "QUOTA 20M on system;"
                            );

    //step5 close the connection object
    con.close();

它说 java.sql.sqlSyntaxErrorException: ORA-00922: 选项丢失或无效

现在,如果我删除“系统上的 QUOTA 20M”,它工作正常。但是该配额是正确的语法,所以我不明白它为什么会失败。为什么不能从java设置配额?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)