create or replace procedure getfiles
as
type mytable is table of varchar2(100);
l_files mytable;
l_refc sys_refcursor;
begin
open l_refc for
select name from v$datafile;
fetch l_refc bulk collect into l_files
for i in 1..l_files.count loop
dbms_output.put_line('datafile'||i||':'||l_files(i));
end loop;
open l_refc for
select name from v$controlfile;
fetch l_refc bulk collect into l_files;
for i in 1..l_files.count loop
dbms_output.put_line('controlfile'||i||':'||l_files(i));
end loop;
open l_refc for
select member from v$logfile;
fetch l_refc bulk collect into l_files;
close l_refc;
for i in 1..l_files.count loop
dbms_output.put_line('logfile'||i||':'||l_files(i));
end loop;
end;
SQL> exec getfiles;
datafile1:E:/APP/XIAOCAI/ORADATA/XIAOCAI/SYSTEM01.DBF
datafile2:E:/APP/XIAOCAI/ORADATA/XIAOCAI/SYSAUX01.DBF
datafile3:E:/APP/XIAOCAI/ORADATA/XIAOCAI/UNDOTBS01.DBF
datafile4:E:/APP/XIAOCAI/ORADATA/XIAOCAI/USERS01.DBF
controlfile1:E:/APP/XIAOCAI/ORADATA/XIAOCAI/CONTROL01.CTL
controlfile2:E:/APP/XIAOCAI/ORADATA/XIAOCAI/CONTROL02.CTL
controlfile3:E:/APP/XIAOCAI/ORADATA/XIAOCAI/CONTROL03.CTL
logfile1:E:/APP/XIAOCAI/ORADATA/XIAOCAI/REDO03.LOG
logfile2:E:/APP/XIAOCAI/ORADATA/XIAOCAI/REDO02.LOG
logfile3:E:/APP/XIAOCAI/ORADATA/XIAOCAI/REDO01.LOG