如何在文件系统上创建目录?

Tro*_*ame 1 oracle directory plsql oracle10g

如何在PL/SQL中在OS上创建物理目录?我查看了CREATE OR REPLACE DIRECTORY命令但是没有这样做.两者UTL_FILE似乎都没有能力.

dpb*_*ley 5

UTL_FILE仍然缺乏这种能力 - 可能是前期DIRECTORY对象的延续,你必须明确定义你可以在启动参数中访问的操作系统文件目录,所以无论如何都不需要动态创建目录.

我认为最简单的方法是使用Oracle Java存储过程:

    File f = new File(dirname);
    return (f.mkdir()) ? 1 : 0;
Run Code Online (Sandbox Code Playgroud)

如果你走这条路线,请确保使用dbms_java.grant_permission授予java.io.FilePermission拥有执行代码的用户.


Tro*_*ame 5

最后我确实找到了一个更简单的解决方案。使用

select os_command.exec('mkdir /home/oracle/mydir') from dual;
Run Code Online (Sandbox Code Playgroud)

或者简单地

x := os_command.exec('mkdir /home/oracle/mydir');
Run Code Online (Sandbox Code Playgroud)