UTL_FILE_DIR 一个即将废弃的参数

在ora9.2.0.1 时我就一直认为UTL_FILE_DIR 这个参数即将离我们远去,但到11g 仍然顽强的活着且在EBS 中有发扬光大的迹象。
但我还是认为这个参数的左右已经很弱,修改必须重启DB,对SLA为 7*24 的DB 来说显得不能适用。

我们先看这个UTL_FILE_DIR 的作用:
  UTL_FILE_DIR 参数的作用是让Oracle通过Package 来对OS上面的文件进行操作(如创建,修改等等)

UTL_FILE_DIR 参数如何设定:
  initSID.ora 中 utl_file_dir='/disk/exp_dir'
  (意思是说,在/disk/exp_dir 下Oracle 可以对在这个目录下进行文件的操作) 

在8.1 包括以前版本只能定义一个值
 utl_file_dir='/disk/exp_dir'
 
   如果你定义了
   utl_file_dir='/disk/exp_dir'       utl_file_dir='/u01/exp_dir'       
 SQL>select name,value from v$parameter where name like 'utl’;

   NAME  VALUE
   --------------- -------------------------------------
   utl_file_dir /u01/exp_dir      ----只有最后一次赋值。
   

在9i 以后参数有了该进:
   initSID.ora
      utl_file_dir='/disk/exp_dir'
      utl_file_dir='/u01/exp_dir'  
     
 SQL> show parameter utl_file_dir
 
 NAME                                 TYPE       VALUE
 ------------------------------------ ---------- ------------------------------
 utl_file_dir                         string     /u01/exp_dir, /disk/exp_dir
   
    (很牛X 的定义方式,哎不知道当时设计的人怎么想的,完全不符合一般编程变量定义)
   
    不过也可以使用
      utl_file_dir='/disk/exp_dir','/u01/exp_dir' 
   
    utl_file_dir 也可以使用通配符来定义
       utl_file_dir=*  --意思是说在Server 上你可以在任何路径读写数据,
                        切忌使用这个变量,不然别说你的数据库,就你的Oracle server 也很脆弱。
 
 
  但我认为这个utl_file_dir 这个参数最终将会被 DIRECTORY 所代替,而且DIRECTORY 权限更好控制。
  可以使用下面创建:
 
  create or replace directory UTF_DIR as '/disk/exp_dir';
  grant read,write on directory UTF_DIR to XX schema.
 
  有权限的用户都能使用这个utf_dir 没有权限的用户不能访问,比 utl_file_dir 好很多。而且新增和修改值都不用重启数据库。


所以坚持认为这个utl_file_dir 这个参数将会被废弃。
 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/34596/viewspace-606965/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/34596/viewspace-606965/

你可能感兴趣的:(UTL_FILE_DIR 一个即将废弃的参数)