gpt4 book ai didi

oracle - 如何测试目录Oracle的读/写文件系统权限?

转载 作者:行者123 更新时间:2023-12-02 06:06:06 24 4
gpt4 key购买 nike

假设您创建了一个目录,例如:

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;

关于oracle - 如何测试目录Oracle的读/写文件系统权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9806677/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com