Bonjour,
Je perd ma connexion et j'ai une erreur :
ORA-00600: code d'erreur interne, arguments : [qctcte1], [0], [], [], [], [], [], []
lorsque j'essaye d'exécuter ça:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| SELECT
NVL(t1.status, 'all') status
,NVL(t1.duration, -1) duration
,COUNT(distinct t1.POL_ID) nb_policies
,SUM(t1.BF_AMOUNT) sum_benefit
FROM (
SELECT
p.POL_ID
,bf.BF_AMOUNT
,CASE p.POL_STATUS
WHEN 'DEATH_CL' THEN 'DEATH'
WHEN 'CANCEL' THEN 'OTHER'
WHEN 'SURREN' THEN 'SURREN'
ELSE 'TERM'
END status
,CASE WHEN p.POL_DURATION_MONTH = 12 THEN 1 ELSE
CASE WHEN p.POL_DURATION_MONTH > 12 AND p.POL_DURATION_MONTH < 60 THEN 2 ELSE
CASE WHEN p.POL_DURATION_MONTH = 60 THEN 3 ELSE
CASE WHEN p.POL_DURATION_MONTH > 60 THEN 4 ELSE 0 END
END
END
END duration
FROM BENEFIT_FILE bf
INNER JOIN CLAIM_FILE c
ON c.CLAIM_ID = BF_CLAIM_ID
AND sysdate BETWEEN c.START_D_VER AND c.END_D_VER
INNER JOIN (
SELECT DISTINCT SLICE_COV_NAME
FROM SLICE
WHERE SLICE_COV_IS_LIFE = 'true'
AND sysdate BETWEEN START_D_VER AND END_D_VER
)s
ON c.CLAIM_COVERAGE = s.SLICE_COV_NAME
INNER JOIN POLICY p
ON bf.BF_PC_ID = p.POL_PC_ID
AND sysdate BETWEEN p.START_D_VER AND p.END_D_VER
INNER JOIN ROLE rhol
ON p.POL_HOLDER_ID = rhol.ROLE_ID
AND sysdate BETWEEN rhol.START_D_VER AND rhol.END_D_VER
INNER JOIN THIRD_PARTY tphol
ON tphol.TP_ID = rhol.ROLE_TP_ID
AND sysdate BETWEEN tphol.START_D_VER AND tphol.END_D_VER
AND tphol.TP_TYPE = 'PHYPER'
WHERE bf.BF_STATUS = 'PAID'
AND bf.bf_payment_date BETWEEN TO_DATE('20100101', 'YYYYMMDD') AND TO_DATE('20101231', 'YYYYMMDD')
AND sysdate BETWEEN bf.START_D_VER AND bf.END_D_VER
) t1
GROUP BY cube (t1.status, t1.duration) |
Cette erreur est systématique (se produit tout le temps), par contre j'ai remarqué que si j'enlève le mot "CUBE" ou "DISTINCT", ma requête s'exécute normalement.
Qu'est ce que ça peut être?
J'ai oublié de préciser : j'ai Oracle 10.2.0.1.0
Partager