我想創建一個更新,它將用我聲明的變量更新表,但它給了我一個說「缺少表達式」的錯誤。我不知道可能會導致這種情況。當我嘗試在更新語句中插入一個變量時在Oracle中缺少表達式
這是我的代碼。
DECLARE
VBILL BILL%ROWTYPE;
CURSOR BILLAMT IS
SELECT * FROM BILL;
VCUST1 NUMBER(3);
VCUST2 NUMBER(3);
VCUST3 NUMBER(3);
BEGIN
SELECT FREQUENCY INTO VCUST1 FROM RANGEOFBILLS WHERE RANGE=100;
SELECT FREQUENCY INTO VCUST2 FROM RANGEOFBILLS WHERE RANGE=1000;
SELECT FREQUENCY INTO VCUST3 FROM RANGEOFBILLS WHERE RANGE=10000;
OPEN BILLAMT;
LOOP
FETCH BILLAMT INTO VBILL;
EXIT WHEN BILLAMT%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(VBILL.AMOUNT);
IF VBILL.AMOUNT>100 and VBILL.AMOUNT<=1000 THEN
VCUST1:=VCUST1+1;
EXECUTE IMMEDIATE('UPDATE RANGEOFBILLS SET [email protected] WHERE RANGE=100');
DBMS_OUTPUT.PUT_LINE(VBILL.AMOUNT);
END IF;
END LOOP;
CLOSE BILLAMT;
END;
我認爲問題是執行立即聲明。我甚至試過這樣:
EXECUTE IMMEDIATE ('UPDATE RANGEOFBILLS SET FREQUENCY=:a WHERE RANGE=100' USING VCUST1);
我大概可以。但這裏主要的是語法。我是新來的Pl/SQL。 –