[DB2 V11 for Z/OS] SQLCODE - 802 FIXED POINT OVERFLOW
Bonjour,
Sur DB2 V11 for Z/OS, j'utilisais jusqu'à récemment la requête suivante pour surveiller le cluster ratio de certains espaces, ma requête tournait sans problème :
Code:
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
|
set schema = SYSIBM ;
-- analyse du cluster ratio des index cluster
select substr(TB.CREATOR, 01, 08) as SCHEMA
, substr(TB.NAME, 01, 08) as TABLE
, substr(IX.NAME, 01, 10) as INDEX
, IX.UNIQUERULE as UNIQ
, IX.CLUSTERING as CLSG
, IX.CLUSTERED as CLSD
, IX.CLUSTERRATIO as RATIO
, TB.CARDF as CARDF
, TB.NPAGESF as NPAGESF
, subq.RGISR as REORGINSERTS
, subq.RGDEL as REORGDELETES
, subq.RGUPD as REORGUPDATES
from SYSTABLES as TB
inner join SYSTABLESPACE as TS
on TS.DBID = TB.DBID
and TS.NAME = TB.TSNAME
inner join SYSINDEXES as IX
on IX.TBCREATOR = TB.CREATOR
and IX.TBNAME = TB.NAME
inner join
(select DBID
, PSID
, cast(sum(REORGINSERTS) as bigint) as RGISR
, cast(sum(REORGDELETES) as bigint) as RGDEL
, cast(sum(REORGUPDATES) as bigint) as RGUPD
from SYSTABLESPACESTATS
group by DBID
, PSID) subq
on subq.DBID = TB.DBID
and subq.PSID = TS.PSID
where IX.CLUSTERING = 'Y' -- index cluster
and IX.CLUSTERED = 'N' -- mal organisé
and TB.CREATOR = 'XXXX'
and TB.TYPE = 'T' -- type table
and (TB.CARDF = -1 or TB.CARDF >0) -- sauf tables vides
and TB.NAME like 'YYYY%' |
Mais ,désormais j'obtiens le message d'erreur
ExampleExceptionFormatter: exception message was: DB2 SQL Error: SQLCODE=-802, SQLSTATE=22003, SQLERRMC=FIXED POINT OVERFLOW;COLUMN FUNCTION;INTEGER, DRIVER=3.69.24
Chose étrange : la requête principale seule s'exécute sans problème, la requête imbriquée seule également, seule la requête complète provoque l'erreur.
J'ai ajouté le cast en bigint (absent au départ) dans la requête corrélée pour essayer de corriger le problème, mais sans succès.
Une idée ?