Oracle谓词问题

时间:2017-03-16 12:39:10

标签: oracle session

我有一些不同寻常的问题。每当我运行此查询时,我的数据库会自动断开连接或发生此错误: 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,就会创建表。 任何帮助都将受到高度赞赏。

0 个答案:

没有答案