小技巧分享了。
最近遇到这个问题,找了一下,原来用utl_file.fgetattr包可以很方便实现检测,应该也是最有效率的。
---用fgetattr获取
DECLARE
L_fexists BOOLEAN := FALSE;
L_EXISTS_FILE VARCHAR2(50);
L_file_length NUMBER;
L_block_size BINARY_INTEGER;
BEGIN
--UTL_FILE.FGETATTR获取文件的长度之类的属性。
utl_file.fgetattr('MY_DOCS'
,'sql_8000_11.sql'
,L_fexists
,L_file_length
,L_block_size
);
IF L_fexists THEN
L_EXISTS_FILE := 'FILE EXISTS!';
ELSE
L_EXISTS_FILE := 'FILE NOT EXISTS!';
END IF;
DBMS_OUTPUT.PUT_LINE( 'L_fexists:'
|| L_EXISTS_FILE
|| CHR(10)
|| 'L_file_length:'
|| L_file_length
|| CHR(10)
|| 'L_block_size:'
|| L_block_size);
END;