How to remove some specified files from a directory
-------------------------------------------------------------------------------------------------------------------------
Recently i have been put into a task of removing files form a directory.
a file name begin like " 20_ " and end with anything , 20_file1 , 20_file2 , 20_file3. So it needs to be removed from that directory.
Find below program :
1. CREATE
DIRECTORY dmpdir AS 'C:\dir_testing';
( create the direcory) SELECT * FROM dba_directories WHERE directory_name = 'DMPDIR';
(view info abt tht drectory)
PL/SQL
-----------------------------------------------------------------------------------------------------------
createor replace procedure Terminate_DIRfiles_proc (p_dir_nme IN varchar2,p_search_like IN varchar2 )
AS
v_dir_nme
varchar2(1024);
v_search_like varchar2(1024);
v_ls VARCHAR2(1024);
v_val VARCHAR2(1024);
v_dir_path VARCHAR2(1024);
BEGIN
v_dir_nme := p_dir_nme;
v_search_like := p_search_like;
SELECT directory_path
INTO v_dir_path
FROM dba_directories
WHERE directory_name = v_dir_nme;
SYS.DBMS_BACKUP_RESTORE.SEARCHFILES(v_dir_path,v_ls);
FOR file_list IN (SELECT FNAME_KRBMSFT AS file_name
FROM X$KRBMSFT
WHERE FNAME_KRBMSFT LIKE '%'|| NVL(v_search_like, FNAME_KRBMSFT)||'%' )
LOOP
v_val := substr(file_list.file_name, INSTR (file_list.file_name,chr(92),-1,1) +1 );
UTL_FILE.FREMOVE (v_dir_nme, v_val);
END LOOP;
End-------------------------------------------------------------------------------------------------------------------------------
Please let me know if any comments or clarifications requried.
-- Raj
;
Comments
Post a Comment