资源描述:
《oracle存储过程读写文件操作》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、racle提供的文件操作包UTL_FILE包中的UTL_FILE.FOPEN负责打开一个文件。 utl_file.fopen(locationinvarchar2,filenameinvarchar2,open_modeinvarchar2)returnFILE_TYPE; Location是路径参数, FILENAME是文件名, OPEN_MODE是打开模式,'R'是读文本,'W'是写文本,'A'是附加文本,参数不分大小写,如果指定'A'但是文件不存在,它会用'W'先创建出来,'W'有覆盖的功能; 其中的location并不能简单的指定为'D:/
2、temp'等路径,要建立一个DIRECTORY变量并付给权限(必须以DBA身份登录): Sql代码1.Createorreplace directory D_OUTPUT as 'D:/TEMP' ; 2.grant read ,write on directory D_OUTPUT to testdb; 3.GRANT EXECUTE ON utl_file TO testdb; [sql] viewplaincopy1.create or replace directory D_OUTPUT as 'D:/TEM
3、P'; 2.grant read,write on directory D_OUTPUT to testdb; 3.GRANT EXECUTE ON utl_file TO testdb; 之后就可以用UTL_FILE包建立文件了Sql代码1.V_FILE UTL_FILE.FILE_TYPE; 2.V_FILE := UTL_FILE.FOPEN('D_OUTPUT' , 'Data.txt' , 'w' ); [sql] viewplaincopy1.V_FILE UTL_FILE.FILE_TYPE; 2.V_FILE :=
4、UTL_FILE.FOPEN('D_OUTPUT', 'Data.txt', 'w'); 就可以在数据库服务器的D:/TEMP建立Data.txt 最近用到了Oracle的包UTL_FILE,网上却没找到关于它的函数,过程使用说明,虽然都不是很难的东西,但简单列出来,也能提高些效率。FOPEN IS_OPEN GET_LINE PUT NEW_LINE PUT_LINE PUTF FFLUSH FCLOSE FCLOSE_ALL UTL_FILE.FOPEN 用法FOPEN会打开指定文件并返回一个文件句柄用于操作文件。所有PL/SQL版本:
5、 Oracle8.0版及以上: FUNCTIONUTL_FILE.FOPEN( FUNCTIONUTL_FILE.FOPEN( location INVARCHAR2, location INVARCHAR2, filename INVARCHAR2, filename INVARCHAR2, open_mode INVARCHAR2) open_mode INVARCHAR2, RETURNfile_type; max_linesizeINBI
6、NARY_INTEGER) RETURNfile_type;参数 location 文件地址 filename 文件名 openmode 打开文件的模式(参见下面说明) max_linesize文件每行最大的字符数,包括换行符。最小为1,最大为32767 3种文件打开模式:R只读模式。一般配合UTL_FILE的GET_LINE来读文件。W写(替换)模式。文件的所有行会被删除。PUT,PUT_LINE,NEW_LINE,PUTF和FFLUSH都可使用A写(附加)模式。原文件的所有行会被保留。
7、在最末尾行附加新行。PUT,PUT_LINE,NEW_LINE,PUTF和FFLUSH都可使用打开文件时注意以下几点:文件路径和文件名合起来必须表示操作系统中一个合法的文件。文件路径必须存在并可访问;FOPEN并不会新建一个文件夹。如果你想打开文件进行读操作,文件必须存在;如果你想打开文件进行写操作,文件不存在时,会新建一个文件。如果你想打开文件进行附加操作,文件必须存在。A模式不同于W模式。文件不存在时,会抛出INVALID_OPERATION异常。FOPEN会抛出以下异常UTL_FILE.INVALID_MODEUTL_FILE.INVALID
8、_OPERATIONUTL_FILE.INVALID_PATHUTL_FILE.INVALID_MAXLINESIZEUT