我正在尝试在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_;
答案 0 :(得分:1)
欢迎来到奇怪而具有误导性的Oracle错误消息世界!
根据经验,您可以像@a_horse_with_no_name一样直观地发现错误。
如果您没有立即看到错误,建议逐步简化查询,直到错误消失。就您而言,我将删除AND b.taskinstance_ IN ()
子查询,并检查是否出现相同的错误。然后,我将使用一个简单的常量(例如SUBSTR
)删除SET a.ACTORID_ = 'a'
。然后,我将删除JOIN
,仅更新表A
。这样就可以正常运行,因此您需要阅读UPDATE
上的Oracle文档。