Chinaunix首页 | 论坛 | 博客
  • 博客访问: 650410
  • 博文数量: 789
  • 博客积分: 5000
  • 博客等级: 大校
  • 技术积分: 4985
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-28 09:29
文章分类

全部博文(789)

文章存档

2011年(1)

2008年(788)

我的朋友

分类:

2008-10-28 09:45:24


  Create directory让我们可以在数据库中灵活的对文件进行读写操作,极大的提高了的易用性和可扩展性。
  
  其语法为:
  
  create or replace directory exp_dir as '/tmp';
  
  目录创建以后,就可以把读写权限授予特定用户,例如:
  
  grant read, write on directory exp_dir to eygle;
  
  此时用户eygle就拥有了对该目录的读写权限。
  
  让我们看一个简单的:
  
  SQL> create or replace directory UTL_FILE_DIR as '/opt/oracle/utl_file';
  
  Directory created.
  
  SQL> declare
   2  fhandle utl_file.file_type;
   3 begin
   4  fhandle := utl_file.fopen('UTL_FILE_DIR', 'example.txt', 'w');
   5  utl_file.put_line(fhandle , 'eygle test write one');
   6  utl_file.put_line(fhandle , 'eygle test write two');
   7  utl_file.fclose(fhandle);
   8 end;
   9 /
  
  PL/SQL procedure successfully completed.
  
  SQL> !
  [oracle@jumper 9.2.0]$ more /opt/oracle/utl_file/example.txt
  eygle test write one
  eygle test write two
  [oracle@jumper 9.2.0]$
  
  类似的我们可以通过utl_file来读取文件:
  
  SQL> declare
   2  fhandle  utl_file.file_type;
   3  fp_buffer varchar2(4000);
   4 begin
   5  fhandle := utl_file.fopen ('UTL_FILE_DIR','example.txt', 'R');
   6
   7  utl_file.get_line (fhandle , fp_buffer );
   8  dbms_output.put_line(fp_buffer );
   9  utl_file.get_line (fhandle , fp_buffer );
   10  dbms_output.put_line(fp_buffer );
   11  utl_file.fclose(fhandle);
   12 end;
   13 /
  eygle test write one
  eygle test write two
  
  PL/SQL procedure successfully completed.
  
  可以查询dba_directories查看所有directory.
  
  SQL> select * from dba_directories;
  
  OWNER             DIRECTORY_NAME         DIRECTORY_PATH
  ------------------------------ ------------------------------ ------------------------------
  SYS              UTL_FILE_DIR          /opt/oracle/utl_file
  SYS              BDUMP_DIR           /opt/oracle/admin/conner/bdump
  SYS              EXP_DIR            /opt/oracle/utl_file
  
  可以使用drop directory删除这些路径.
  
  SQL> drop directory exp_dir;
  
  Directory dropped
  
  SQL> select * from dba_directories;
  
  OWNER             DIRECTORY_NAME         DIRECTORY_PATH
  ------------------------------ ------------------------------ ------------------------------
  SYS              UTL_FILE_DIR          /opt/oracle/utl_file
  SYS              BDUMP_DIR           /opt/oracle/admin/conner/bdump
【责编:admin】

--------------------next---------------------

阅读(315) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~