发布于 2016-02-05 15:23:06
你链接到的文章指出:
目录对象只是指向物理目录的指针,创建它实际上并不会在数据库服务器的文件系统上创建物理目录。
您必须分别在数据库之外创建物理操作系统目录。运行Oracle数据库的操作系统用户必须对该物理目录进行可读性和可写性;正如您在Windows上所显示的那样,该帐户将是运行服务的帐户。
您可以在创建目录对象之前或之后创建物理目录,因为它们完全独立,除非Oracle试图通过UTL_FILE或相关活动访问它--数据泵使用UTL_FILE,从错误消息堆栈中可以看到这一点。
CREATE DIRECTORY不检查它指向的物理目录是否存在;您可以在没有注意到的情况下删除或创建物理目录;只要在尝试使用它时它是可访问的。
来自Oracle文档
目录对象为服务器文件系统上的目录指定别名.
和
对于文件存储,还必须创建相应的操作系统目录、Oracle自动存储管理(Oracle ASM)磁盘组或Oracle ASM磁盘组中的目录。您的系统或数据库管理员必须确保操作系统目录对Oracle数据库进程具有正确的读写权限。 为目录授予的权限是独立于为操作系统目录定义的权限创建的,两者可能完全对应,也可能不完全对应。例如,如果在目录对象上授予示例用户hr读取权限,但相应的操作系统目录没有为Oracle数据库进程定义读取权限,则会发生错误。
https://stackoverflow.com/questions/35226934
复制相似问题