♣
题目部分
在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程序员面试笔试宝典》,作者:李华荣。