【问题标题】:A simple create user statement fails?一个简单的创建用户语句失败?
【发布时间】:2012-08-10 12:49:52
【问题描述】:

像以前一样,制作Java-Oracle11g-JDBC (OJDBC) 代码。 Java 代码尝试对下面的语句执行executeUpdate() 并发生错误。但是 Oracle 11g 执行它时没有任何问题(通过它的 GUI)。

声明-

 CREATE USER Person identified by 2012;

错误(即 PrintStackTrace 的一部分)-

java.sql.SQLSyntaxErrorException: ORA-00911: invalid character

【问题讨论】:

  • 您是否尝试删除';'在结尾?密码是2012吗?如果是这样,请尝试使用 '' 转义它。

标签: java jdbc oracle11g


【解决方案1】:

Oracle 不喜欢末尾的分号。您不希望在 OJDBC 查询中使用分号,尽管它可以在 Oracle GUI 中使用。

【讨论】:

  • 这很奇怪。 oracle 11g 的 GUI 喜欢分号。有的java-sql语句使用semis成功,那么为什么上面的情况会报错呢?
  • @sweetdreams 是的,像 JDBC->MySQL 这样的东西可以用分号。但是 Oracle 的 JDBC 不允许多个查询,我猜它完全认为 ; 是一个非法字符。我没有解释为什么会这样。
  • @sweetdreams 使用分号的原因是为了终止一行,以便编译器或引擎知道这是语句的结尾。 JDBC 在字符串 ("") 中不需要分号。问候
猜你喜欢
  • 1970-01-01
  • 2014-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-11
  • 2013-02-26
相关资源
最近更新 更多