When I run the SQL, I got ” ORA-12801: error signaled in parallel query server ” error.
ORA-12801: error signaled in parallel query server
Details of error are as follows.
ORA-12801, 00000, "error signaled in parallel query server %s" Cause: A parallel query server reached an exception condition. Action: Check the following error message for the cause, and consult your error manual for the appropriate action. *Comment: This error can be turned off with event 10397, in which case the server's actual error is signaled instead.
declare v_dyn clob; begin begin execute immediate 'drop table ' || 'ODI' || '.' || 'ODI_TABLE purge'; exception when others then null; end; v_dyn := ' CREATE TABLE "ODI"."ODI_TABLE" ( "SUBSCR_ID" NUMBER NOT NULL ENABLE, "SUBSCR_CLASS_SCHEME_CD" VARCHAR2(16 CHAR) NOT NULL ENABLE, "VALID_FROM_DT" DATE NOT NULL ENABLE, "VALID_UNTIL_DT" DATE NOT NULL ENABLE, "SUBSCR_CLASS_VALUE_CD" VARCHAR2(16 CHAR) NOT NULL ENABLE, "SOURCE_SYSTEM_CD" VARCHAR2(5 CHAR) NOT NULL ENABLE, "INSERT_DT" DATE, "UPDATE_DT" DATE ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOLOGGING STORAGE( BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "MSD_TBS" PARTITION BY RANGE ("VALID_UNTIL_DT") INTERVAL (NUMTODSINTERVAL(1,''DAY'')) SUBPARTITION BY LIST ("SUBSCR_CLASS_SCHEME_CD") SUBPARTITION TEMPLATE ( SUBPARTITION "SP_LOB" VALUES ( ''LOB'' ), SUBPARTITION "SP_SGIB" VALUES ( ''SGIB'' ), SUBPARTITION "SP_VIP" VALUES ( ''VIP'' ) ) (PARTITION "P_LOW" VALUES LESS THAN (TO_DATE('' 1980-01-01 00:00:00'', ''SYYYY-MM-DD HH24:MI:SS'', ''NLS_CALENDAR=GREGORIAN'')) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 STORAGE( BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "MSD_TBS" ( SUBPARTITION "P_LOW_SP_LOB" VALUES (''LOB'') STORAGE( BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "MSD_TBS" COMPRESS BASIC , SUBPARTITION "SYS_SUBP459877" VALUES (''SGIB'') STORAGE( BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "MSD_TBS" COMPRESS BASIC , SUBPARTITION "SYS_SUBP672811" VALUES (''VIP'') STORAGE( BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "MSD_TBS" COMPRESS BASIC ) ) PARALLEL 16 '; execute immediate v_dyn; execute immediate 'alter session enable parallel dml'; insert /*+ append parallel(64) */ into ODI.ODI_TABLE partition for (to_date('2049-12-31 00:00:00', 'YYYY-MM-DD HH24:MI:SS')) select /*+ parallel(64) */ t1.* from ODI2.SUBSCR_CLASS partition for (to_date('2049-12-31 00:00:00', 'YYYY-MM-DD HH24:MI:SS')) t1; commit; execute immediate 'alter session disable parallel dml'; end; / ERROR at line 1: ORA-12801: error signaled in parallel query server P00F ORA-12804: parallel query server appears to have died ORA-06512: at line 54
This error is related with Partitioned table and Parallel execution on Cluster Nodes.
Temp 12801
To solve this problem, You can run the same SQL as follows.
set the following trace events, then run the same SQL as follows.
alter session set events '10384 trace name context forever , level 16384';
declare v_dyn clob; begin begin execute immediate 'drop table ' || 'ODI' || '.' || 'ODI_TABLE purge'; exception when others then null; end; v_dyn := ' CREATE TABLE "ODI"."ODI_TABLE" ( "SUBSCR_ID" NUMBER NOT NULL ENABLE, "SUBSCR_CLASS_SCHEME_CD" VARCHAR2(16 CHAR) NOT NULL ENABLE, "VALID_FROM_DT" DATE NOT NULL ENABLE, "VALID_UNTIL_DT" DATE NOT NULL ENABLE, "SUBSCR_CLASS_VALUE_CD" VARCHAR2(16 CHAR) NOT NULL ENABLE, "SOURCE_SYSTEM_CD" VARCHAR2(5 CHAR) NOT NULL ENABLE, "INSERT_DT" DATE, "UPDATE_DT" DATE ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOLOGGING STORAGE( BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "MSD_TBS" PARTITION BY RANGE ("VALID_UNTIL_DT") INTERVAL (NUMTODSINTERVAL(1,''DAY'')) SUBPARTITION BY LIST ("SUBSCR_CLASS_SCHEME_CD") SUBPARTITION TEMPLATE ( SUBPARTITION "SP_LOB" VALUES ( ''LOB'' ), SUBPARTITION "SP_SGIB" VALUES ( ''SGIB'' ), SUBPARTITION "SP_VIP" VALUES ( ''VIP'' ) ) (PARTITION "P_LOW" VALUES LESS THAN (TO_DATE('' 1980-01-01 00:00:00'', ''SYYYY-MM-DD HH24:MI:SS'', ''NLS_CALENDAR=GREGORIAN'')) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 STORAGE( BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "MSD_TBS" ( SUBPARTITION "P_LOW_SP_LOB" VALUES (''LOB'') STORAGE( BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "MSD_TBS" COMPRESS BASIC , SUBPARTITION "SYS_SUBP459877" VALUES (''SGIB'') STORAGE( BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "MSD_TBS" COMPRESS BASIC , SUBPARTITION "SYS_SUBP672811" VALUES (''VIP'') STORAGE( BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "MSD_TBS" COMPRESS BASIC ) ) PARALLEL 16 '; execute immediate v_dyn; execute immediate 'alter session enable parallel dml'; insert /*+ append parallel(64) */ into ODI.ODI_TABLE partition for (to_date('2049-12-31 00:00:00', 'YYYY-MM-DD HH24:MI:SS')) select /*+ parallel(64) */ t1.* from ODI2.SUBSCR_CLASS partition for (to_date('2049-12-31 00:00:00', 'YYYY-MM-DD HH24:MI:SS')) t1; commit; execute immediate 'alter session disable parallel dml'; end; / PL/SQL procedure successfully completed. SQL>
OR
set sort_area_size as follows
alter session set sort_area_size = 2048576000 scope both sid=’*’;
OR
Increase Temp tablespace by adding new tempfile as follows.
ALTER TABLESPACE TEMP ADD TEMPFILE '+DATA' SIZE 100M AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED;
Do you want to learn Oracle Database for Beginners, then read the following articles.
https://ittutorial.org/oracle-database-19c-tutorials-for-beginners/