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> !
            [[email protected] 9.2.0]$ more /opt/oracle/utl_file/example.txt
            eygle test write one
            eygle test write two
            [[email protected] 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;

时间: 2024-10-14 12:39:47

oracle direction目录的相关文章

【Linux】将Oracle安装目录从根目录下迁移到逻辑卷

[Linux]将Oracle安装目录从根目录下迁移到逻辑卷 1.1  BLOG文档结构图 1.2  前言部分 1.2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① Linux逻辑卷的创建和管理(重点) 1.2.2  相关文章链接 linux逻辑卷管理:http://blog.itpub.net/26736162/viewspace-2124620/,这篇文章非常不错. 1.2.3  本文简介 由于Oracle

清理Oracle安装目录里的一些日志信息

最近测试环境服务器上磁盘空间紧张,表空间里面的数据也不知道开发哪些需要哪些不需要,而且因为此测试库运行时间比较久远,起码有三年了.于是就从清理Oracle安装目录下的日志下手. 发现在一般这几个日志,如果没有做定期清理的话,就比较占空间. 1.<user_dump_dest>/alert_<sid>.log 2.$ORACLE_HOME/oc4j/j2ee/OC4J_DBConsole_<hostname>_<SID>/log/http-web-access

本地 oracle 安装目录满触发 ORA-7445 [_memmove()+64] 导致Instance Crashed 的事故

最近处理了一个问题,原因是由于命中ORA-600 [kole_t2u], [34] - description, bugs 导致 在udump 目录下大量转储 出cdmp 文件, 然后这些 cdmp 撑爆本地磁盘空间, 在oracle 发现本地无空间可写一些日志时,又触发ORA-7445 [_memmove()+64] 而触发ORA-600 [kole_t2u], [34] 的 根本原因是因为业务程序的非法操作,在db 中某张含有 clob 字段的表中插入了一些oracle现有字符集(zh16g

[INS-32052] Oracle基目录和Oracle主目录位置相同

1.错误描述 [INS-32052] Oracle基目录和Oracle主目录位置相同 2.错误原因    Oracle基目录和Oracle主目录位置相同 3.解决办法    Oracle基目录和Oracle主目录位置不能相同,Oracle建议在Oracle基目录中安装Oracle软件,请相应调整Oracle主目录或Oracle基目录

重装系统后,oracle11g数据库恢复(原oracle安装目录还在)

安装与之前同版本的数据库,安装目录选择与之前一样. 关闭oracle的所有服务. 拷贝原oracle_home目录下的database文件夹到现在的目录(最好先将现在的database文件夹进行备份). 拷贝原oracle_base下的oradata.admin.fgtoollogs.flash_recovery_area文件夹,覆盖现在的目录(请先进行备份). 打开服务. 运行命令sqlplus / as sysdba; 运行命令shutdown 运行命令startup 恢复成功.

Oracle Directory目录的知识

在上一章介绍expdp/impdp时曾使用过DIRECTORY这个概念,下面再简单说明下DIRECTORY的点点滴滴. MOS上对DIRECTORY的解释(266875.1): (1).基于服务端 vs 基于客户端 DIRECTORY变量指出了expdp导出数据泵或impdp导入数据泵将dump文件.log文件以及SQL文件(仅适用于impdp)写到什么路径. 因为导出数据泵和导入数据泵都是基于服务端的,不是基于客户端的,因此输出文件的路径都是相对于服务端目录的路径.数据泵要求将目录路径作为一个

ORACLE directory 目录--转载

Create directory让我们可以在Oracle数据库中灵活的对文件进行读写操作,极大的提高了Oracle的易用性和可扩展性.其语法为:CREATE [OR REPLACE] DIRECTORY directory AS 'pathname'; 本案例具体创建如下: create or replace directory exp_dir as '/tmp'; 目录创建以后,就可以把读写权限授予特定用户,具体语法如下:GRANT READ[,WRITE] ON DIRECTORY dire

11.2.04 Oracle RAC 目录中 crfclust.bdb文件过大,Bug 20186278

今天发现我们的数据库服务器CRS安装目录突然增大,经过查找发现在crf目录中存在一个非常大的crf文件,通过MOS查找,发现命中Bug 20186278, 记录一下,以防忘记 [[email protected] smidb11]$ pwd /oracle/app/11.2.0/grid_1/crf/db/smidb11 [[email protected] smidb11]$ ls -l total 31863680 -rw-r----- 1 root root   578748416 Aug

ORACLE DIRECTORY目录管理步骤

ORACLE的 DIRECTORY在数据库中是个目录的路径,需要在操作系统中有相应的目录与之对应:ORACLE目录的作用就是让ORACLE数据库和操作系统之前进行文件的交互,最常见的就是数据泵的导入和导出: DIRECTORY的管理步骤: 1.创建:CREATE [OR REPLACE] DIRECTORY directory AS 'pathname' ; 例如:CREATE OR REPLACE DIRECTORY DIR AS 'F:\expbak'; 2.赋权:GRANT READ[,W