SQL 使用更新执行块

SQL execute block using update

我正在尝试使用 update 执行 execute block。但是我收到一个错误。

此处显示的SQL与实际问题类似,但update要复杂得多。我需要在 update 块中使用每个声明的 cust_id

EXECUTE BLOCK 

AS DECLARE VARIABLE CUSTOMER INT;

BEGIN
FOR
SELECT CUST_ID FROM CLIEN
 WHERE CUST_ID IN (1,2,3,4)
INTO :CUSTOMER

DO
BEGIN
UPDATE ORDERS
 SET STATUS='I'
WHERE CUST_ID=(SELECT CUST_ID
  FROM CUSTCONDITION
    WHERE CONDITION='OK' AND CUST_ID=:CUSTOMER)

DO BEGIN

END
END
END

我怎样才能做到这一点?

您不能在我们的更新语句后使用 do begin

EXECUTE BLOCK 

AS DECLARE VARIABLE CUSTOMER INT;

BEGIN
FOR
SELECT CUST_ID FROM CLIEN
 WHERE CUST_ID IN (1,2,3,4)
INTO :CUSTOMER

DO
BEGIN
UPDATE ORDERS
 SET STATUS='I'
WHERE CUST_ID=(SELECT CUST_ID
  FROM CUSTCONDITION
    WHERE CONDITION='OK' AND CUST_ID=:CUSTOMER);

END
END