Oracle提供的Utl_File报如何使用???

Delphi_Li 2003-05-29 04:33:56
我写了一个存储过程,如下
create or replace procedure Pr_Save_To_Text is
MyHandle Utl_File.File_Type;
vPath Varchar2( 20 );
vName Varchar2( 20 );
begin
vPath := 'D:\';
vName := 'Data.Txt';
Begin
MyHandle := Utl_File.FOpen( vPath, vName, 'a' );
For Cur In ( Select * From Plusmoney )
Loop
Utl_File.Put_Line( MyHandle,
Cur.CZ_NO||','||
Cur.PhoneNo||','||
To_Char( Cur.JE )||','||
To_Char( Cur.CZ_Date, 'YYYYMMDD' )||','||
Cur.CZ_LTNO||','||
Cur.DQH||','||
To_Char( Cur.Play_Mode )||','||
Cur.QH
);
End Loop;
Exception
When UTL_FILE.INVALID_PATH Then
Return;
When UTL_FILE.INVALID_MODE Then
Return;
When UTL_FILE.INVALID_OPERATION Then
Return;
End;
Utl_File.FClose( MyHandle );
end Pr_Save_To_Text;

但是总是产生UTL_FILE.INVALID_PATH的异常,这是为什么???
...全文
111 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Delphi_Li 2003-05-30
  • 打赏
  • 举报
回复
搞定!!!

一个奇怪的现象,如果将utl_file_dir=d:\写在文件最后就出错误!!!
Delphi_Li 2003-05-30
  • 打赏
  • 举报
回复
我修改后的InitSid.Ora文件如下
IFILE='C:\oracle\admin\XXXXX\pfile\init.ora'
utl_file_dir=d:\,c:\,e:\

但是还是出现同样的错误!!!

Why???
w_tsinghua 2003-05-29
  • 打赏
  • 举报
回复
在initsid.ora文件中,加入或修改
设置utl_file_dir的要点:
1。 utl_file_dir=* 这表示你能操作任何目录,尽量不要用
2。 utl_file_dir=d:\ 这表示你能操作d:\目录下的文件,但你不能操作d:\目录下的子目录
3。注意在设置
utl_file_dir=路径时,如果路径是长路径名,例如c:\my temp目录,则你必须加上'',例如:
utl_file_dir='c:\my temp'
4。utl_file_dir可以是多个路径
utl_file_dir=c:\,d:\,d:\temp,'c:\my temp'
5。设置完必须重新启动数据库
xiapb 2003-05-29
  • 打赏
  • 举报
回复
initsid.ora文件:
utl_file_dir参数
Michaelyfj 2003-05-29
  • 打赏
  • 举报
回复
参考:
http://www.oradb.net/sql/plsql_001.htm
xzou 2003-05-29
  • 打赏
  • 举报
回复
要在INIT.ORA文件中加入
UTL_FILE_DIR=D:\
...............
可以加多行
再重启数据库后试试
w_tsinghua 2003-05-29
  • 打赏
  • 举报
回复
那就有奇怪了
utl的路径设置的要点是:
如果你是在服务器执行(存储过程等),设置的路径是你服务器的路径,文件也存在你的服务器里,
如果你是在客户端执行(pl/sql块),则设置的路径是你的客户端的路径,文件也存在你的客户端里。
当然你必须有操作此目录的权限
例如我的服务器是unix的,我的客户端是win2000:
SQL> declare
2 MyHandle Utl_File.File_Type;
3 vPath Varchar2( 20 );
4 vName Varchar2( 20 );
5 begin
6 vPath := 'c:\';
7 vName := 'wqh1.Txt';
8 Begin
9 MyHandle := Utl_File.FOpen( vPath, vName, 'a' );
10 Exception
11 When UTL_FILE.INVALID_PATH Then
12 Return;
13 When UTL_FILE.INVALID_MODE Then
14 Return;
15 When UTL_FILE.INVALID_OPERATION Then
16 Return;
17 End;
18 Utl_File.FClose( MyHandle );
19 end;
20 /

PL/SQL 过程已成功完成。
Delphi_Li 2003-05-29
  • 打赏
  • 举报
回复
我的系统是Windows 2003/Windows 2000/Windows XP!!!不是Unix系统!!!
w_tsinghua 2003-05-29
  • 打赏
  • 举报
回复
我觉得你的数据库的操作系统不是win的,应该是unix或linux,你的路径设置不对,
例如:
vPath := '/home/oracle/test';
内容概要:本文档详细介绍了基于直驱永磁同步发电机(PMSG)的1.5MW风力发电系统在Simulink环境下的建模与仿真全过程,涵盖了风力机空气动力学模型、PMSG电磁特性建模、不可控整流与逆变电路、直流环节、空间矢量脉宽调制(SVPWM)技术以及核心控制策略的设计。重点实现了最大功率点跟踪(MPPT)控制以提升风能捕获效率,并构建了电压外环与电流内环协同工作的双闭环控制系统,通过仿真验证了系统在不同风速条件下稳定运行的能力及动态响应性能。; 适合人群:适用于具备电力系统、电机控制理论基础及Simulink仿真操作经验的研究生、科研人员和从事新能源发电系统开发的工程技术人员;特别适合正在进行风电系统建模、控制算法研究或完成相关毕业设计的专业人士。; 使用场景及目标:①深入理解直驱式PMSG风力发电系统的整体架构与工作机理;②掌握从物理部件建模到控制策略实现的完整Simulink仿真流程;③学习并复现MPPT控制、双闭环控制等关键技术方案;④为后续开展低电压穿越、并网稳定性分析、故障诊断等高级课题提供可靠的仿真平台支撑。; 阅读建议:建议结合Matlab/Simulink软件动手实践,逐模块搭建模型,重点关注各控制环节的参数设计与调试方法,同时可参照文中提供的其他风电相关资源进行拓展学习与对比分析。

17,134

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧