I am trying to perform an execute block using an update. However I am getting an error.
The SQL shown here is similar to the real problem, but the update is much more complex. I need to use every declared cust_id into the update block.
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
How can I accomplish that?
Advertisement
Answer
you cannot use do begin after our update statement
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