2

从 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 ?

注意:如有语法错误请忽略

4

0 回答 0