ORA-29283:在 Windows Server 2016 上调用 utl_file.fopen 时文件操作无效

问题描述 投票:0回答:2

我看到的大部分答案都是针对Linux的。 Windows 权限具有黑魔法的元素。这是 Windows Server 2016。

我在 Oracle 数据库服务器上创建了

d:\data\transfer\sirius\
目录。

作为

SYSDBA
我执行以下操作:

create or replace directory SIRIUS_DIR as 'd:\data\transfer\sirius\';
grant read,write on directory SIRIUS_DIR to SIRIUS;

然后在另一台服务器上,以

SIRIUS
用户身份在 SQL*Plus 会话中运行:

DECLARE     myFile utl_file.file_type;                                             
BEGIN
 myFile := utl_file.fopen('SIRIUS_DIR ', 'random.txt', 'w', 32000);
END;
/ 

这给出了:

ERROR at line 1:
ORA-29283: invalid file operation
ORA-06512: at "SYS.UTL_FILE", line 536
ORA-29283: invalid file operation
ORA-06512: at "SYS.UTL_FILE", line 41
ORA-06512: at "SYS.UTL_FILE", line 478
ORA-06512: at line 3

如何进行?

windows oracle12c file-permissions windows-server-2016
2个回答
0
投票

想通了。您需要授予ORA_INSTALL组对数据库上相关目录的完全访问权限。根据Oracle配置文档

ORA_INSTALL 组包含所有 Oracle 主用户 Oracle 驻留在服务器上。

感谢这位好心的博主提供的解决方案。


0
投票

ORA_INSTALL 可能在 Windows 上工作,但在 Linux (Oracle linux 8.9) 上我必须将目录更改为 oracle:oinstall。 (或 chmod 777)

我知道这个问题是针对 Windows 的,但我在 google 上搜索了 Linux,Google 把我带到了这里

© www.soinside.com 2019 - 2024. All rights reserved.