zoukankan      html  css  js  c++  java
  • oracle direction目录

    Create directory让我们可以在Oracle数据库中灵活的对文件进行读写操作,极大的提高了Oracle的易用性和可扩展性。
    其语法为:
    CREATE [OR REPLACE] DIRECTORY directory AS 'pathname';

    本案例具体创建如下:

    create or replace directory exp_dir as '/tmp';

    目录创建以后,就可以把读写权限授予特定用户,具体语法如下:
    GRANT READ[,WRITE] ON DIRECTORY directory TO username;

    例如:

    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

    (3)、如何查询可用的目录?

    可以使用如下SQL查询具有READWRITE权限的目录:

    SET lines 80 
    COL grantee FORMAT a20 
    COL privilege FORMAT a10 
    SELECT directory_name, grantee, privilege 
      FROM user_tab_privs t, all_directories d   
     WHERE t.table_name(+)=d.directory_name   
     ORDER BY 1,2,3;

  • 相关阅读:
    与ORA-28000: the account is locked-的解决办法
    Oracle建库
    批量将PowerDesigner中表字段由小写变成大写
    MVC5 action 返回JavaScript代码,未执行弹框,出现下载文件或是返回的JavaScript内容 的问题
    sql实现子查询
    经纬度计算是否在圆形内,是否在矩形内,是否在多边形内方法
    网站模板地址及CSS样式网站
    web前端学习笔记
    spring get方法 中文(UTF-8)乱码
    OpenLayers 笔记
  • 原文地址:https://www.cnblogs.com/violin508/p/4328940.html
Copyright © 2011-2022 走看看