From 670ed6c2b8b78cf33fabf8f1d8946ab2230b46be Mon Sep 17 00:00:00 2001 From: Yacine31 Date: Thu, 6 Jun 2024 05:33:57 +0200 Subject: [PATCH] Update 20c_datafile.sql --- sql/20c_datafile.sql | 93 ++++++++++++++++---------------------------- 1 file changed, 33 insertions(+), 60 deletions(-) diff --git a/sql/20c_datafile.sql b/sql/20c_datafile.sql index a1e4e4c..8254d6c 100644 --- a/sql/20c_datafile.sql +++ b/sql/20c_datafile.sql @@ -1,62 +1,35 @@ -prompt

Détail des datafiles :

+prompt

CDB/PDB - Détail des datafiles :

+COLUMN is_cdb NEW_VALUE is_cdb_var +SELECT cdb AS is_cdb FROM v$database; -DECLARE - 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 - 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; -/ +SELECT + CASE + WHEN '&is_cdb_var' = 'YES' THEN p.con_id + ELSE NULL + END AS pdb_id, + CASE + WHEN '&is_cdb_var' = 'YES' THEN p.name + ELSE NULL + END 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 + LEFT JOIN cdb_pdbs p ON df.con_id = p.con_id +WHERE '&is_cdb_var' = 'YES' +UNION ALL +SELECT + NULL AS pdb_id, + NULL 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 + dba_data_files df +WHERE '&is_cdb_var' = 'NO';