Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle Can';不要写入文件。神谕_Oracle_Permissions_Directory - Fatal编程技术网

Oracle Can';不要写入文件。神谕

Oracle Can';不要写入文件。神谕,oracle,permissions,directory,Oracle,Permissions,Directory,我正在尝试执行以下行: DECLARE V_FILEHANDLE UTL_FILE.FILE_TYPE; BEGIN V_FILEHANDLE := UTL_FILE.FOPEN('C:\samples', '1.csv', 'w'); UTL_FILE.PUT_LINE(V_FILEHANDLE, 'sample string'); UTL_FILE.FCLOSE_ALL; END; 在此之前,我已成功执行了以下语句: create directory sam

我正在尝试执行以下行:

DECLARE
    V_FILEHANDLE UTL_FILE.FILE_TYPE;
BEGIN
    V_FILEHANDLE := UTL_FILE.FOPEN('C:\samples', '1.csv', 'w');
    UTL_FILE.PUT_LINE(V_FILEHANDLE, 'sample string');
    UTL_FILE.FCLOSE_ALL;
END;
在此之前,我已成功执行了以下语句:

create directory sample as 'C:\samples';
(虽然我在
C:\
驱动器上找不到目录?) 但这给了我一个输出,比如:

ORA-29280:“无效的目录路径”

*原因:相应的目录对象不存在

*操作:更正目录对象参数,或使用create directory命令创建相应的目录对象

我还尝试将previleges授予我的用户名:

grant read, write on directory sample to brick;
但这给了我一个输出,比如

ORA-01749:您不能向自己授予/撤销特权

我做错了什么?

替换

V_FILEHANDLE := UTL_FILE.FOPEN('C:\samples', '1.csv', 'w');
与:

V_FILEHANDLE := UTL_FILE.FOPEN('SAMPLE', '1.csv', 'w');
例如,第一个参数是目录对象名



在旧版本的Oracle中,
UTL_FILE.open的第一个参数是
,但自从引入
目录
对象(在9i?)以来,这个参数就被弃用了。

非常感谢!我发现了我的错误。我正在创建目录,就像


将目录dat_dir创建或替换为“/u01/oracle/Desktop/Migration/Data”完成。。现在获取ORA-29283错误。我应该向谁授予权限?@brick该目录是否实际存在于服务器上?在Oracle中使用之前,您必须从操作系统创建目录。我不知道这一点,您可能会猜到)我是否应该授予存储过程修改目录/文件的任何权限?目录上的权限是,因此授予的用户拥有的任何过程都可以访问该目录。所有权限都自动授予对象目录的创建者。之后,DBA用户可以将权限授予其他用户(我认为是系统权限)。