adaptation des resultats tablespace et datafile aux bases CDB

This commit is contained in:
Yacine31
2025-11-20 22:53:59 +01:00
parent d82e092f67
commit 0d2cd05d78
2 changed files with 74 additions and 55 deletions

View File

@@ -1,62 +1,25 @@
prompt <h2>Détail des tempfile : </h2>
COL con_id HEAD "CON ID"
COL pdb_name HEAD "PDB Name"
COL name HEAD "PDB Name"
COL file_id HEAD "File ID"
COL file_name HEAD "Tempfile"
COL tablespace_name FORMAT A20 HEAD "Tablespace"
COL file_size_mb FORMAT 999999999.00 HEAD "File Size MB"
-- COL space_used_mb FORMAT 999999999.00 HEAD "Space Used MB"
-- COL space_free_mb FORMAT 999999999.00 HEAD "Space Free MB"
COL maxsize_mb FORMAT 999999999.00 HEAD "Max Size MB"
-- COL percent_used FORMAT 999.00 HEAD "% Used"
COL autoextensible FORMAT A15 HEAD "Auto Extensible"
COL file_name HEAD "Tempfile"
COL status head "Status"
-- COL online_status format a15 head "Online Status"
COL file_size_mb FORMAT 999999999.00 HEAD "File Size MB"
COL maxsize_mb FORMAT 999999999.00 HEAD "Max Size MB"
COL autoextensible FORMAT A15 HEAD "Auto Extensible"
WITH
-- Sous-requête pour les fichiers de données dans une CDB
cdb_files AS (
-- cdb_files.sql
select /* db-html-report */
p.con_id AS pdb_id,
p.pdb_name AS pdb_name,
d.file_id,
d.tablespace_name,
d.file_name,
d.bytes/1024/1024 AS file_size_mb,
d.maxbytes/1024/1024 AS maxsize_mb,
d.autoextensible,
d.status
FROM
cdb_temp_files d
RIGHT JOIN cdb_pdbs p ON d.con_id = p.pdb_id
WHERE
(SELECT cdb FROM v$database) = 'YES'
ORDER BY p.pdb_id, d.tablespace_name, d.file_name
),
-- Sous-requête pour les fichiers de données dans une non-CDB
non_cdb_files AS (
-- non_cdb_files.sql
SELECT
0 AS pdb_id,
NULL AS pdb_name,
d.file_id,
d.tablespace_name,
d.file_name,
d.bytes/1024/1024 AS file_size_mb,
d.maxbytes/1024/1024 AS maxsize_mb,
d.autoextensible,
d.status
FROM
dba_temp_files d
WHERE
(SELECT cdb FROM v$database) = 'NO'
ORDER BY d.tablespace_name, d.file_name
)
-- Requête finale combinant les résultats des sous-requêtes
SELECT * FROM cdb_files
UNION ALL
SELECT * FROM non_cdb_files;
select
t.con_id,
c.name,
t.file_id,
t.tablespace_name,
t.file_name,
t.status,
round(t.bytes/1024/1024) file_size_mb,
round(t.maxbytes/1024/1024) maxsize_mb,
t.autoextensible
from cdb_temp_files t, v$containers c
where t.con_id = c.con_id
order by t.con_id, t.file_id, t.file_name;