SQL更新-内部联接查询

时间:2020-04-20 06:34:15

标签: sql oracle sql-update inner-join update-inner-join

我正在尝试在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_;

1 个答案:

答案 0 :(得分:1)

欢迎来到奇怪而具有误导性的Oracle错误消息世界!

根据经验,您可以像@a_horse_with_no_name一样直观地发现错误。

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

相关问题