【问题标题】:Oracle error ORA-00971Oracle 错误 ORA-00971
【发布时间】:2011-12-09 06:10:39
【问题描述】:

针对 oracle 10g (10.2.0.1.0) 运行以下 SQL 时出现错误:

UPDATE fx_datumvcompgeneric AS c
   SET mp =  (SELECT p.mp
                FROM fx_propertyattrsingletscomp AS p
               WHERE c.var_container = p.id
             )
 WHERE c.mp IS NULL 

错误是:ORA-00971: missing SET keyword

我们是通过 JDBC 来做的,异常堆栈的顶部是:

java.sql.SQLException: ORA-00971: missing SET keyword

  oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
  oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
  oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
  oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:745)
  oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:207)
  oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:957)
  oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1170)
  oracle.jdbc.driver.OracleStatement.executeUpdateInternal(OracleStatement.java:1623)
  oracle.jdbc.driver.OracleStatement.executeUpdate(OracleStatement.java:1588)
  org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:225)
  org.apache.commons.dbcp.DelegatingStatement.executeUpdate(DelegatingStatement.java:225)

【问题讨论】:

  • 谢谢大家,这么快就得到一致的答案真是太棒了!

标签: sql database oracle jdbc oracle10g


【解决方案1】:

去掉两个 AS 关键字 - Oracle 不喜欢它们。

【讨论】:

    【解决方案2】:

    您不能在更新中使用AS 为表命名

    【讨论】:

      【解决方案3】:
      猜你喜欢
      • 2019-12-11
      • 2011-12-10
      • 1970-01-01
      • 2012-05-17
      • 2014-12-06
      • 1970-01-01
      • 1970-01-01
      • 2014-06-23
      • 2013-06-24
      相关资源
      最近更新 更多