【问题标题】:“ORA-00922: missing or invalid option” when trying to insert into table尝试插入表时出现“ORA-00922:缺少或无效选项”
【发布时间】:2015-08-29 08:52:09
【问题描述】:

当我在 oracle sql developer 中运行 SQL 查询时,它可以工作,但在 jdbc 中,此查询不起作用并捕获 java.sql.SQLSyntaxErrorException: ORA-00922: missing or invalid 选项。谁能帮助我?下面有我的查询

CREATE GLOBAL TEMPORARY TABLE MY_TABLE (
    ID VARCHAR2(30 BYTE) PRIMARY KEY, 
    NAME VARCHAR2(20 BYTE));
INSERT INTO MY_TABLE (
    ID, NAME)
VALUES ('My_Id' , 'My_Name' );

【问题讨论】:

  • 尝试将它们作为两个单独的语句而不是作为一个语句运行。
  • 显示用于执行此操作的 Java 代码。请注意,您一次只能执行 一个 语句。
  • 这看起来像是 stackoverflow.com/questions/18515471/… 的副本,你能检查一下吗?关键问题是您试图一次执行 2 条语句。
  • 从对答案的评论中,您通过 JDBC 运行的东西略有不同,而不是您所显示的。如果没有分号,INSERT 关键字将被视为CREATE 的一部分,并且作为该命令的一部分确实无效。您不能将两个语句作为一个运行。

标签: sql oracle jdbc


【解决方案1】:

这只是一个快速的猜测,因为我没有可用的预言机来证明它,但是使用 MyBatis(它基于 JDBC)我在最后一个 ; 有这种行为。请尝试在您的 JDBC 查询中删除它。

请在第一条语句中创建临时表,然后在第二条语句中添加您的数据。

【讨论】:

  • 我删除了 jdbc 查询中的 ; 字符。如果我不删除这个字符 jdbc 抓住Invalid charcters exception
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多