set serveroutput on;
DECLARE
CURSOR
IS
SELECT SVL_ID
FROM SALES_VEHICLES
WHERE SVL_N = 'some value';--314653;
TYPE SVD_TA IS TABLE OF VSALES%ROWTYPE;
SV SVD_TA;
BEGIN
OPEN VSALES;
FETCH VSALES BULK COLLECT INTO SV LIMIT 1000;
CLOSE VSALES;
IF SV.COUNT() <> 0
THEN
FOR I IN 1..SV.COUNT()
LOOP
UPDATE SALES_VEHICLES
SET SVL_M = 'some value',
SVL_M = SVL_C_N
WHERE SVL_ID = I.SVL_ID;
COMMIT;
END LOOP;
END IF;
EXIT WHEN VSALES%NOTFOUND;
END LOOP;
CLOSE VSALES;
END;
我在調試時遇到了麻煩。錯誤在第32行第5列。如果你能幫助我解決這個問題,我將非常感激。ORA-06550:遇到關閉符號
您正在關閉光標兩次。一次檢索後,一次最後。但是你是否使用光標來完成此操作?整個過程可以用一個'update'語句取代 - 這也將是一個很快的**,然後慢慢的逐行方法。 –
我被要求不使用單個更新語句。我嘗試關閉遊標只有一次,我仍然得到ORA 06550錯誤。(遇到符號結束) – ishan
沒有冒犯,但這是一個愚蠢的要求。爲什麼要做一些緩慢和不可擴展的方式? –