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';