前两天工作上一个需求,需要导出一张表到mif,mid文件,当然这是最主要的环节。
其实函数很简答,无非是读写文件,网上例子很多,我说说我遇到的坑,给大家提个醒,那么好进入正题。
先看个栗子
create or replace directory UTL_FILE_DIR as '/home/oracle/xt';
declare
fhandle utl_file.file_type;
begin
fhandle := utl_file.fopen('UTL_FILE_DIR', 'example.txt', 'W');
utl_file.put_line(fhandle , 'eygle test write one');
utl_file.put_line(fhandle , 'eygle test write two');
UTL_FILE.FFLUSH(fhandle);
utl_file.fclose(fhandle);
end;
栗子很简单,我就不解释了,下面说遇到的问题
1.ORA-29283 权限不足
1.书写有误
2.文件路径不存在,即/home/oracle/xt 在服务器上不存在
3.该文件没有读写权限 ,查看是否有权限,更改权限
4.最坑的来了!以上检查过都没有问题,但还是会报这个权限问题。那么很有可能就是该服务器的权限问题,刚开始我使用root不行,后来换个其他用户可以了,让你同事帮你看看吧。
希望对你有帮助。