0

我正在尝试在 2 个表中进行更新,但出现此错误:

错误 SQL:ORA-00933:“SQL 命令未正确结束”。

请问你能帮帮我吗?查询是:

UPDATE a
SET a.ACTORID_ = SUBSTR(a.ACTORID_, 2, LENGTH(a.ACTORID_)),
    b.TASKACTORID_ = SUBSTR(b.TASKACTORID_, 2, LENGTH(b.TASKACTORID_))
FROM jbpm_taskinstance AS a
    INNER JOIN jbpm_log AS b 
    ON b.TASKACTORID_ = a.ACTORID_
WHERE a.ACTORID_ = b.TASKACTORID_
     AND b.TASKINSTANCE_ IN (
          SELECT ID_ 
          FROM jbpm_taskinstance 
          WHERE a.PROCINST_ =b.PROCINST_)
     AND b.TASKACTORID_ = a.ACTORID_;
4

1 回答 1

1

欢迎来到充满奇怪和误导性的 Oracle 错误消息的世界!

凭借经验,您可以像@a_horse_with_no_name 所做的那样,一目了然地发现错误。

如果您没有立即看到错误,我建议您逐步简化查询,直到错误消失。在您的情况下,我将删除AND b.taskinstance_ IN ()子查询并检查是否出现相同的错误。然后我会SUBSTR用一个简单的常量删除 ,比如SET a.ACTORID_ = 'a'. 然后我会删除JOIN,只更新表A。这将运行正常,因此您需要阅读 Oracle 在UPDATE.

于 2020-04-20T08:15:55.823 回答