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拥有执行代码的用户.
最后我确实找到了一个更简单的解决方案。使用
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)