Voilà,
je veux connaître les paramètres suivants pour une instance donnée :

Total de l'espace alloué à la base de donnée (MB_Allocated),
Total de l'espace utilisé (MB_Used)
Total de l'espace libre (MB_Free)
ET
Le pourcentage d'espace libre <---- C'est ici que ça accroche!!!

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
SELECT
sum(MB_Allocated),
sum(MB_Used),
sum(MB_Free),
   ME MANQUE LE CODE
FROM (
SELECT * FROM (
SELECT
sum(ROUND((A.BYTES/1048576),2)) MB_Allocated,
sum(ROUND(((A.BYTES-DECODE(F.BYTES,NULL,0,F.BYTES))/1048576),2)) MB_Used,
sum(ROUND(((A.BYTES/1048576)-(A.BYTES-DECODE(F.BYTES,NULL,0,F.BYTES))/1048576),2)) MB_Free
FROM SYS.DBA_TABLESPACES D, SYS.SM$TS_AVAIL A, SYS.SM$TS_FREE F
WHERE D.TABLESPACE_NAME = A.TABLESPACE_NAME AND F.TABLESPACE_NAME(+)=D.TABLESPACE_NAME) y
UNION ALL
SELECT * FROM (
SELECT
sum(ROUND((a.bytes/1048576),2)) MB_Allocated,
sum(ROUND(NVL(t.bytes,0)/1048576,2)) MB_Used,
sum(ROUND((a.bytes/1048576) - (NVL(t.bytes,0)/1048576),2)) MB_Free
FROM sys.dba_tablespaces d,
(SELECT tablespace_name, sum(bytes) bytes
FROM dba_temp_files GROUP BY tablespace_name) a,
(SELECT tablespace_name, sum(bytes_cached) bytes
FROM SYS.v_$temp_extent_pool GROUP BY tablespace_name) t
WHERE d.tablespace_name = a.tablespace_name(+) AND d.tablespace_name = t.tablespace_name(+) AND d.extent_management like 'LOCAL' AND d.c
ontents like 'TEMPORARY') z
)
J'ai essayé avec toute sorte de code, utilisant ROUND qui me retourne quelque chose du genre c'est pas une commande "group". J'ai utilisé SUM qui me retourne la mauvais réponse mathématique... a vrai dire, je sais plus quoi inventer pour arriver au bon résultat.

Quelqu'un aurait-il la solution???

Merci