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
我正在尝试使用 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