你的位置:
问答吧
-> Oracle
-> 问题详情
关于oracle存储过程读取文件
问题:我知道只能读取固定目录的文件,我想问的是
1,文件名可以通过参数传入存储过程中吗?
2,怎么实现?比如,需要什么特殊的权限吗?
作者: lijinlin_love
发布时间: 2010-10-15
不能,存储过程要读取文件,首先要创建该文件的目录
作者: ojuju10
发布时间: 2010-10-15
UTL_FILE.FOPEN 函数中可以指定目录和文件名,现在我是想目录固定,而文件名通过参数传入
这样不能实现吗
作者: lijinlin_love
发布时间: 2010-10-15
可以的。而且就是目录是动态的也可以。只是在存储过程中要做动态处理。我曾经实现过。
作者: xfcy800
发布时间: 2010-10-15
三楼 谢谢你的回答
再问一个问题
2,有什么特殊要求吗?比如,需要什么授权吗
因为现在我不是以DBA的身份登录的
作者: lijinlin_love
发布时间: 2010-10-15
需要授权的。比如你要对用户user1授目录/home/oracle/test/的读写授权;
CREATE DIRECTORY read_dir AS '/home/oracle/test/';
执行 grant READ,WRITE ON DIRECTORY read_dir TO user1;即可
UTL_FILE.fopen ('read_dir', DOC_NAME, 'R'); --读取文件 DOC_NAME为传入的文件名称参数
作者: xfcy800
发布时间: 2010-10-15
引用 2 楼 lijinlin_love 的回复:
UTL_FILE.FOPEN 函数中可以指定目录和文件名,现在我是想目录固定,而文件名通过参数传入
这样不能实现吗
先创建目录,后将目录传递参数进去,可以实现
作者: ojuju10
发布时间: 2010-10-15
GRANT CREATE ANY DIRECTORY to user;
GRANT drop ANY DIRECTORY to user;
GRANT alter ANY DIRECTORY to user;
作者: ojuju10
发布时间: 2010-10-15