oracle ORA-12805: 并行查询服务器意外死亡
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/12274596/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
ORA-12805:parallel query server died unexpectedly
提问by Vivek
I have a PL/SQL script like this...
我有一个像这样的 PL/SQL 脚本...
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;
This query returns ORA-12805:parallel query server died unexpectedly
error. I'm not sure why it is happening. The select query in cursor returned around 415 records when i got this error.
此查询返回ORA-12805:parallel query server died unexpectedly
错误。我不确定为什么会这样。当我收到此错误时,游标中的选择查询返回了大约 415 条记录。
Anyone understand why this error comes up?
任何人都明白为什么会出现这个错误?
回答by APC
This is a problem for your DBA to resolve, as there are a large number of possible causes. Somebody needs to look in the Alert Log and check for trace files in the bdump
directory for diagnostic info.
这是您的 DBA 需要解决的问题,因为有很多可能的原因。有人需要查看警报日志并检查目录中的跟踪文件以bdump
获取诊断信息。
In the meantime, if you have only 415 records to delete you should just use straight SQL:
同时,如果您只有 415 条记录要删除,您应该直接使用 SQL:
DELETE FROM cust_table
WHERE cust_num in (SELECT cus_num
FROM dob.cust_table
GROUP BY cust_num HAVING COUNT(*)>1);