现在的位置: 首页 > 综合 > 正文

DIRECTORY目录操作实践和认识

2013年10月14日 ⁄ 综合 ⁄ 共 1195字 ⁄ 字号 评论关闭

操作过程:
****以sys用户登陆:执行第一,第二

1.文件操作目录的设定

CREATE DIRECTORY recv_area AS 'd:/test' ;

CREATE DIRECTORY send_area AS 'd:/test' ;

2.目录的操作权限设定

GRANT READ ON DIRECTORY  recv_area TO wangyh;

GRANT WRITE ON DIRECTORY send_area TO wangyh;

其中wangyh为一个普通用户

*****以wangyh用户登陆

3.确认目录设置信息

SELECT  * FROM ALL_DIRECTORIES;(如下)

1        SYS        RECV_AREA        d:/test
2        SYS        SEND_AREA        d:/test

4.写入文件
SQL> CREATE OR REPLACE PROCEDURE CREATE_DIR_WRITE_SAMPLE
  2  
  3  AS
  4  
  5  vHandle UTL_FILE.FILE_TYPE;
  6  
  7  vDirname Varchar2(250);
  8  
  9  vFilename Varchar2(250);
10  
11  vOutput Varchar2(32767);
12  
13  BEGIN
14  
15          vDirname := 'SEND_AREA'; --大写的目录定义名
16  
17          vFilename:='test.txt';
18  
19          vHandle := UTL_FILE.FOPEN(vDirname,vFilename,'w',32767);
20  
21          vOutput := 'my utl_file test';
22  
23         UTL_FILE.PUT_LINE(vHandle,vOutput);
24  
25         UTL_FILE.FCLOSE(vHandle);
26  
27  END;
28  
29  /

Procedure created

SQL> commit;

Commit complete

PS:
目录DIRECTORY
这是ORACLE为了管理BFILE引入的新元素,它指定SERVER文件系统的目录,可以把文件系统的目录抽象为数据库对象,更具
有灵活性。
DIRECTORY由DBA建立,系统用户拥有,通过GRANT/REVOKE来确定哪些用户有权限。
CREATE OR REPLACE DIRECTORY 目录名 AS 路径名
DROP DIRECTORY 目录名
DIRECTORY建立的原则
DIRECTORY不要和DB DATAFILE在相同的目录下。
要有选择的赋予CREATE ANY DIRECTORY和DROP ANY DIRECTORY ROLE。
在建立之前要在OS级别上设置权限。
如果移植DB到其他机器,需要注意DIRECTORY的路径是否改变

抱歉!评论已关闭.