【DB笔试面试519】在Oracle中,什么是Oracle Directory?

2019-09-29 15:04:38 浏览数 (1)

题目部分

在Oracle中,什么是Oracle Directory?

答案部分

Oracle Directory(目录)可以让用户在Oracle数据库中灵活地对文件进行读写操作,极大地提高了Oracle的易用性和可扩展性。其语法如下所示:

CREATE [OR REPLACE] DIRECTORY DIRECTORY AS 'PATHNAME';

创建和删除Directory的权限为:CREATE ANY DIRECTORY、DROP ANY DIRECTORY。赋予普通用户使用Directory的权限包括READ、WRITE、EXECUTE,也可以直接写ALL,如下所示:

GRANT READ,WRITE,EXECUTE ON DIRECTORY EXP_DIR_LHR TO LHR;

GRANT ALL ON DIRECTORY EXP_DIR_LHR TO LHR;

需要注意的是,在创建Directory数据库对象时对应的路径不存在也不会报错,Oracle数据库并不会到操作系统上检验路径的存在性,只有在使用时才会校验,因此在创建Directory时谨记对应的路径的真实存在性,否则可能会报ORA-29913或ORA-29400的错误。

下面给出一个创建Oracle Directory的例子:

SYS@lhrdb> CREATE OR REPLACE DIRECTORY EXP_DIR_LHR AS '/tmp';

Directory created.

SYS@lhrdb> GRANT READ,WRITE ON DIRECTORY EXP_DIR_LHR TO LHR;

Grant succeeded.

SYS@lhrdb> COL DIRECTORY_PATH FORMAT A20

SYS@lhrdb> SELECT DIRECTORY_NAME ,DIRECTORY_PATH FROM DBA_DIRECTORIES WHERE DIRECTORY_NAME='EXP_DIR_LHR';

DIRECTORY_NAME DIRECTORY_PATH

------------------------------ --------------------

EXP_DIR_LHR /tmp

& 说明:

有关Oracle Directory的更多内容介绍可以参考我的BLOG:http://blog.itpub.net/26736162/viewspace-2148694/

本文选自《Oracle程序员面试笔试宝典》,作者:李华荣。

0 人点赞