DIRECTORY目录操作实践和认识

操作过程:
****以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的路径是否改变
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值