I tried executing the below query but getting error "ORA-01652: unable to extend temp segment by 128 in tablespace TEMP" in Prod where as it is succefully executing in lower environments. Other than increasing the TEMP table space , can someone please suggest an alternative?
Thank you for your help.
INSERT /*+ APPEND */ INTO PFE_GP.CONT_DATA(SC_ID,
        ID,
        PRD,
        CONT,
        QTY,
        PRICE,
        PRICE2,
        PRICE3,
        TOTAL_SALES,
        TOTAL_DISCOUNT)
    SELECT A.*,
            SUM (SALES) OVER (PARTITION BY CONT) AS TOTAL_SALES,
            SUM (DISCOUNT) OVER (PARTITION BY CONT) AS TOTAL_DISCOUNT
    FROM (
            SELECT /*+ FULL(T) PARALLEL(T 8)*/ D.SC_ID,
                T.ID,
                T.PRD,
                R1.CONT,
                T.QTY,
                T.PRICE,
                B.PRICE2,
                B.PRICE3,
                T.PRICE*T.QTY AS SALES,
                T.DISC DISCOUNT    
            FROM TC T
                , BNDL_DFN X
                , SOURCE_DATES D
                , XREF R1
                , PRICE B,
                  WC_PR W
            WHERE D.SOURCE_TABLE = 'CBK'
                AND UPPER (X.LEVEL) = 'CONTRACT' 
                AND X.OFFSET >= 0
                AND D.AS_OF_DATE BETWEEN T.EFFECTIVE_DATE AND T.EXPIRATION_DATE
                AND TRUNC (T.INV_DATE) BETWEEN X.EFF_DATE AND X.EXP_DATE
                AND TRUNC (T.INV_DATE) BETWEEN R1.EFFECTIVE_DATE AND R1.EXPIRATION_DATE
                AND T.CON = X.CONT
                AND T.PRD = X.PRD  
                AND T.PRD = W.PRD
                AND TRUNC (T.INV_DATE) BETWEEN W.EFFECTIVE_START_DATE and W.EFFECTIVE_END_DATE  
                AND UPPER(R1.PURP) = 'OTHER'
                AND (T.CONT = R1.CONT OR T.PR_GROUP = R1.CONT)
                AND T.CONT = B.CONT
                AND T.PRD = B.PRD
                AND TRUNC(T.INV_DATE) BETWEEN B.DT_START AND B.DT_END
        UNION
            SELECT /*+ FULL(T) PARALLEL(T 8)*/ D.SC_ID,
                T.ID,
                T.PRD,
                R1.CONT,
                T.QTY,
                T.PRICE,
                B.PRICE2,
                B.PRICE3,
                T.PRICE*T.QTY AS SALES,
                0 DISCOUNT           
            FROM  TC T
                , BNDL_DFN X
                , SOURCE_DATES D
                , XREF R1
                , PRICE B,
                  WC_PR W
            WHERE D.SOURCE_TABLE = 'CBK'
                AND UPPER (X.LEVEL) = 'CONTRACT' 
                AND X.OFFSET >= 0
                AND D.AS_OF_DATE BETWEEN T.EFFECTIVE_DATE AND T.EXPIRATION_DATE
                AND TRUNC (T.INV_DATE) BETWEEN X.EFF_DATE AND X.EXP_DATE
                AND TRUNC (T.INV_DATE) BETWEEN R1.EFFECTIVE_DATE AND R1.EXPIRATION_DATE
                AND T.PR_GROUP = X.CONT
                AND T.PRD = X.PRD  
                AND T.PRD = W.PRD
                AND TRUNC (T.INV_DATE) BETWEEN W.EFFECTIVE_START_DATE and W.EFFECTIVE_END_DATE  
                AND UPPER(R1.PURP) = 'OTHER'
                AND (T.CONT = R1.XREF OR T.PR_GROUP = R1.XREF)
                AND T.CONT = B.CONT
                AND T.PRD = B.PRD
                AND TRUNC(T.INV_DATE) BETWEEN B.DT_START AND B.DT_END
                AND T.CUST = TO_CHAR (X.TRAD_CUST)
                AND (T.PRICE_GROUP = R1.XREF OR T.CONTRACT = R1.XREF)
        ) a;
        COMMIT; 
 
    