Files
db_report/sql/20c_datafile.sql
2024-06-06 05:26:45 +02:00

70 lines
2.7 KiB
SQL

prompt <h2>Détail des datafiles : </h2>
ECLARE
v_is_cdb VARCHAR2(3);
BEGIN
-- Vérifier si la base de données est une CDB
SELECT cdb INTO v_is_cdb FROM v$database;
IF v_is_cdb = 'YES' THEN
-- Si la base de données est une CDB, exécuter la requête avec pdb_id et pdb_name
DBMS_OUTPUT.PUT_LINE('PDB ID: ' || rec.pdb_id ||
', PDB Name: ' || rec.pdb_name ||
', Tablespace Name: ' || rec.tablespace_name ||
', File Name: ' || rec.file_name ||
', Size (MB): ' || rec.Size_Mo ||
', Max Size (MB): ' || rec.Maxsize_Mo ||
', Autoextensible: ' || rec.autoextensible);
FOR rec IN (
SELECT
p.pdb_id AS pdb_id,
p.pdb_name AS pdb_name,
df.tablespace_name,
df.file_name,
df.bytes/1024/1024 AS Size_Mo,
df.maxbytes/1024/1024 AS Maxsize_Mo,
df.autoextensible
FROM
cdb_data_files df
JOIN
cdb_pdbs p
ON
df.con_id = p.pdb_id
ORDER BY p.pdb_name
)
LOOP
DBMS_OUTPUT.PUT_LINE('PDB ID: ' || rec.pdb_id ||
', PDB Name: ' || rec.pdb_name ||
', Tablespace Name: ' || rec.tablespace_name ||
', File Name: ' || rec.file_name ||
', Size (MB): ' || rec.Size_Mo ||
', Max Size (MB): ' || rec.Maxsize_Mo ||
', Autoextensible: ' || rec.autoextensible);
END LOOP;
ELSE
-- Si la base de données n'est pas une CDB, exécuter la requête sans pdb_id et pdb_name
FOR rec IN (
SELECT
df.tablespace_name,
df.file_name,
df.bytes/1024/1024 AS Size_Mo,
df.maxbytes/1024/1024 AS Maxsize_Mo,
df.autoextensible
FROM
dba_data_files df
ORDER BY
df.tablespace_name,
df.file_name
)
LOOP
DBMS_OUTPUT.PUT_LINE('Tablespace Name: ' || rec.tablespace_name ||
', File Name: ' || rec.file_name ||
', Size (MB): ' || rec.Size_Mo ||
', Max Size (MB): ' || rec.Maxsize_Mo ||
', Autoextensible: ' || rec.autoextensible);
END LOOP;
END IF;
END;
/