SQL ОБНОВЛЕНИЕ - INNER JOIN QUERY - PullRequest
0 голосов
/ 20 апреля 2020

Я пытаюсь сделать обновление в 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 Ответ

1 голос
/ 20 апреля 2020

Добро пожаловать в мир странных и вводящих в заблуждение Oracle сообщений об ошибках!

С опытом вы можете обнаружить ошибку на глаз, как это сделал @a_horse_with_no_name.

Если вы не Чтобы не видеть ошибку немедленно, я бы рекомендовал упростить запрос шаг за шагом, пока ошибка не исчезнет. В вашем случае я бы удалил подзапрос AND b.taskinstance_ IN () и проверил, появляется ли такая же ошибка. Затем я бы удалил SUBSTR с простой константой, такой как SET a.ACTORID_ = 'a'. Затем я удалил бы JOIN, обновив только таблицу A. Это будет работать нормально, поэтому вам нужно прочитать документацию Oracle на UPDATE.

...