假设您创建一个目录,例如:
CREATE OR REPLACE DIRECTORY
EXT_DATA_FILES AS
'/data/ext_data_files';
GRANT READ, WRITE ON DIRECTORY SYS.EXT_DATA_FILES TO MYAPPUSER;
我想知道 Oracle 是否能够在该路径中读取和写入文件。我怎样才能测试它?
在创建外部表时,这对我有很大帮助,以避免与权限错误真正相关的模糊错误消息。
您可以使用UTL_FILE
包裹。例如,这将验证您是否可以创建一个名为的新文件some_new_file_name.txt
写入目录并写入数据
DECLARE
l_file utl_file.file_type;
BEGIN
l_file := utl_file.fopen( 'EXT_DATA_FILES', 'some_new_file_name.txt', 'W' );
utl_file.put_line( l_file, 'Here is some text' );
utl_file.fclose( l_file );
END;
这将验证名为的文件existing_file_name.txt
存在并且可读
DECLARE
l_exists boolean;
l_size integer;
l_block_size integer;
BEGIN
utl_file.fgetattr( 'EXT_DATA_FILES',
'existing_file_name.txt',
l_exists,
l_size,
l_block_size );
if( l_exists )
then
dbms_output.put_line( 'The file exists and has a size of ' || l_size );
else
dbms_output.put_line( 'The file does not exist or is not visible to Oracle' );
end if;
END;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)