2
我有一個PL/SQL腳本,像這樣...ORA-12805:並行查詢服務器死於意外
DECLARE
CURSOR curs_delete
IS
SELECT cus_num
FROM dob.cust_table GROUP BY cust_num HAVING COUNT(*)>1;
TYPE row_cust_num IS TABLE OF dob.cust_table.cust_num%TYPE;
col_cust_num row_cust_num;
BEGIN
OPEN curs_delete;
LOOP
FETCH curs_delete
BULK COLLECT INTO col_cust_num LIMIT 10000;
EXIT WHEN col_cust_num.EXISTS (1) = FALSE;
FORALL i IN 1 .. col_cust_num.LAST
DELETE FROM cust_table
WHERE cust_num = col_cust_num (i);
COMMIT;
END LOOP;
CLOSE curs_delete;
END;
該查詢返回ORA-12805:parallel query server died unexpectedly
錯誤。我不確定它爲什麼會發生。當我得到這個錯誤時,遊標中的select查詢在415條記錄中返回。
任何人都明白爲什麼會出現這個錯誤?
過於含糊,投機性的把它作爲一個答案,但無論如何:遊標循環中Commiting可能無效光標。嘗試去掉內部循環的COMMIT,看看它是否改善了結果。 –