我有一些不同寻常的问题。每当我运行此查询时,我的数据库会自动断开连接或发生此错误: ORA-12805:并行查询服务器意外死亡。 BEGIN
EXECUTE IMMEDIATE
'CREATE TABLE ZZZ_CLAIMS_00172414_MEMID PARALLEL NOLOGGING AS
SELECT MEMID, ENRID, MEMFIRSTNAME, MEMLASTNAME,GENDER,DOB
FROM
(
SELECT /*+parallel(a,4)*/
MEMID,
ENRID,
MEMFIRSTNAME,
MEMLASTNAME,
GENDER,
DOB,
LVLID2,
ROW_NUMBER() OVER(
PARTITION BY
MEMFIRSTNAME, MEMLASTNAME,GENDER,DOB ORDER BY EFFDATE DESC,TERMDATE DESC NULLS LAST) RN
FROM vh_eligibilities a
WHERE LVLID2 = ''00172414''
)
WHERE RN =1
'; --248969
EXCEPTION WHEN OTHERS THEN NULL;
END;
但是当我删除条件,即在哪里LVLID2 =' 00172414''时,表格已成功创建。我咨询了我的DBA,他建议在创建表之前更改会话。
BEGIN
EXECUTE IMMEDIATE 'ALTER SESSION SET "_pred_move_around" = FALSE';
EXCEPTION WHEN OTHERS THEN NULL;
END;
成功创建更改会话表后。我过去两周使用这个,然后今天我不得不创建类似的表。但今天的表是在不使用alter session查询的情况下创建的。 然后我意识到我使用相同的查询,差别不大:
BEGIN
EXECUTE IMMEDIATE
'CREATE TABLE ZZZ_CLAIMS_00172414_MEMID PARALLEL NOLOGGING AS
SELECT MEMID, ENRID, MEMFIRSTNAME, MEMLASTNAME,GENDER,DOB,**LVLID2**----- The difference ------
FROM
(
SELECT /*+parallel(a,4)*/
MEMID,
ENRID,
MEMFIRSTNAME,
MEMLASTNAME,
GENDER,
DOB,
LVLID2,
ROW_NUMBER() OVER(
PARTITION BY
MEMFIRSTNAME, MEMLASTNAME,GENDER,DOB ORDER BY EFFDATE DESC,TERMDATE DESC NULLS LAST) RN
FROM vh_eligibilities a
WHERE LVLID2 = ''00172414''
)
WHERE RN =1
'; --248969
EXCEPTION WHEN OTHERS THEN NULL;
END;
任何人都可以告诉我为什么我收到此错误,并在更改会话表成功创建后。 并且在不改变会话的情况下,只需在创建表时在select语句中添加lvlid2,就会创建表。 任何帮助都将受到高度赞赏。