- 1、本文档共12页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Oracle UTL_FILE的使用使用dbms_output输出有一个缺点是要到整个过程执行完毕才会把结果输出到屏幕,这样就无法在一个长时间运行的过程中通过dbms_output输出来随时监控执行状况。为此可以使用utl_file包来输出文件。utl_file.fopen 打开文件utl_file.put_line 输出文件utl_file.get_line 读取文件utl_file.fclose 关闭文件utl_file.fflush 强制输出缓冲utl_file.fopen的第一个参数指定文件所在目录,这个目录必须包含在utl_file_dir参数指定的目录列表中,或者指定一个directory对象。否则fopen()会报错。-----*********指定路径的两种方式**************1)utl_file_dir设置这个参数必须重起数据库,可以指定多个目录(用逗号隔开)。如果指定为*,表示任意目录。alter system set utl_file_dir=/u01/oracle,/u02/oracle scope=spfile;2)directory创建一个directory对象并赋予所有用户读写权利create or replace directory logfile_target as /u01/oracle;grant read,write on directory logfile_target to public;察看已有的directory对象select * from dba_directories;********************************************************************************************-----批注(关于directory)Oracle创建directory 一般创建directory都是为了用数据泵导入/导出数据用,其实directory还有很多别的用处,本文不做阐述 1、新建directory的语法 CREATE [OR REPLACE] DIRECTORY directory AS pathname; 例如: create or replace directory dump_dir as D:\dump\dir 这样把目录d:\dump\dir设置成dump_dir代表的directory 2、查询有哪些directory select * from dba_directories 3、赋权 grant read,write on directory dump_dir to user01 4、删除drop directory dump_dir-----创建目录, 在可以在oracle中使用目录比如通过pl/sql向目录中写文件,外部表,数据泵,bfile类型都会使用到。oralce内部用来识别OS文件系统路径用的。比如在plsql中进行log输出,制定具体文件路径时要使用到。*****************************************************************************************************3)使用utl_file包输出文件DECLAREl_file utl_file.file_type;----------定义一个文件句柄BEGINl_file := utl_file.fopen(LOGFILE_TARGET, sql.log, W);for row in (select * from user_tables)looputl_file.put_line(l_file, dbms_metadata.get_ddl(TABLE, row.table_name));end loop;utl_file.fclose(l_file);END;*这里也可以写成utl_file.fopen(/u01/oracle, sql.log, W);*fopen()的第三个参数OPEN_MODE,可以指定为r -- read textw -- write texta -- append textrb -- read byte modewb -- write byte modeab -- append byte mode如果指定a或者ab但是文件不存在会先创建。Oracle的utl_file来读取txt文件Oracle的utl_file来读取txt文件,自己参考了两个实例,自己也动手稍微写了一下,来和大家分享一下,不是太完整,希望大家多多指点。工具/原料本人是在C盘下面建了一个test.txt的文件,内容如下:
文档评论(0)