我在脚本中使用了UTL_FILE.FOPEN,并且传递给目录的参数是一个绝对路径,即/asr/file/path和相应的oracle目录名为ASR_ABC,但是在升级到oracle19c之后,参数应该是directory名称ASR_ABC,而不是绝对路径/asr/file/path。
如果我传递一个绝对路径,就会得到错误作为Invalid path。
是否必须将所有文件从绝对路径更改为目录名?或者有什么工作可以从数据库中进行,以避免所有文件中的更改?
发布于 2020-06-25 10:39:36
从18c开始,UTL_FILE_DIR参数不再存在,因此不再可能在UTL_FILE中使用目录路径而不是目录对象。
从OracleDatabase18c开始,不再支持UTL_FILE_DIR参数。相反,请指定目录对象的名称。
即使在早期版本中,路径的参数和使用也只是为了向后兼容性而存在。
发布于 2022-09-02 19:00:44
您可以创建一个名为/asr/file/path的Oracle目录对象,然后像往常一样使用它--不需要进行编码更改。
CREATE OR REPLACE DIRECTORY "/asr/file/path" -- quoted to preserve lower-case letters
AS '/asr/file/path';当我们最终停止使用旧的UTL_FILE_DIR数据库初始化参数时,我们需要这样做。
https://dba.stackexchange.com/questions/269848
复制相似问题