PL/SQL: ORA-00936: 使用 case AND 条件的更新查询中缺少表达式

PL/SQL: ORA-00936: missing expression in update query using case AND condition

我有以下查询,我正在使用 case 语句使用更新查询。我是运行这个查询里面的程序。我在第三行更新查询中收到一个错误 PL/SQL: ORA-00936: missing expression in update query using case statement。我想在我的第一个更新查询案例中使用 && 条件,但它失败了。这个过程非常大,这就是为什么我没有在我的问题中提到。

update
CAPTURING set LAST_TASK_ID= 
CASE WHEN (SELECT MAX(ID) from TEMP_SOAP_MONITORING AND LAST_TASK_ID ) IS NULL THEN SELECT MAX(ID) from SOAP_MONITORING@FONIC_RETAIL 
CASE WHEN (SELECT MAX(ID) from TEMP_SOAP_MONITORING) IS NULL THEN LAST_TASK_ID + 1 ELSE (SELECT MAX(ID) from TEMP_SOAP_MONITORING) END,
CAPTURING_DATE = CURRENT_TIMESTAMP, LAST_CAPTURED_DATE = LAST_CAPT_DATE where DB_TABLE='TEMP_SOAP_MONITORING';

你的条件和支票都乱七八糟:我已经把它们解开来做我认为你正在努力完成的事情。

UPDATE CAPTURING 
SET 
    LAST_TASK_ID = CASE 
        WHEN (SELECT MAX(ID) from TEMP_SOAP_MONITORING) IS NULL AND LAST_TASK_ID IS NULL THEN (SELECT MAX(ID) FROM SOAP_MONITORING@FONIC_RETAIL)
        WHEN (SELECT MAX(ID) from TEMP_SOAP_MONITORING) IS NULL THEN LAST_TASK_ID + 1 
        ELSE (SELECT MAX(ID) from TEMP_SOAP_MONITORING) END,
    CAPTURING_DATE = CURRENT_TIMESTAMP, 
    LAST_CAPTURED_DATE = LAST_CAPT_DATE 
WHERE DB_TABLE = 'TEMP_SOAP_MONITORING';