从 Oracle Database 18c 开始,不再支持 UTL_FILE_DIR 参数。相反,需要指定目录对象的名称。
例如:file_open() 创建一个对象 p_target_dir_obj。
p_target_dir_obj 应该在哪里删除?
示例 PLSQL 代码:
FUNCTION file_open(p_target_dir IN VARCHAR2,
p_file_name IN VARCHAR2,
p_write IN BOOLEAN)
RETURN t_file
IS
BEGIN
CREATE DIRECTORY p_target_dir_obj AS p_target_dir --Created Dir object
-- open file
RETURN UTL_FILE.FOPEN(p_target_dir_obj, p_file_name, 'W', 2001);
END file_open;
PROCEDURE trial()
IS
BEGIN
p_error_file := file_open(p_debug_dir,file_name, TRUE);
UTL_FILE.fclose(p_error_file);
END
对象是否可以在 file_open 函数结束时或在 trial() 结束时的 fclose() 期间被销毁
对象创建是否只需要传递给 UTL_FILE.FOPEN ?
注意:如有语法错误请忽略