此文从某大神copy。
1、 建目录,并给相应用户授目录读写权限和UTL_FILE包执行权限
-- Create directory create or replace directory UTL_DIR as 'D:\AIX\ora_log\'; --以sys as sysdba grant read, write on directory SYS.UTL_DIR to JBK with grant option; grant execute on SYS.UTL_FILE to JBK;
2、 拷贝OS文件
BEGIN utl_file.fcopy('UTL_DIR', 'agmt_bal.dat', 'UTL_DIR', 'agmt_bal_'||to_char(sysdate-1,'YYYYMMDD')||'.dat'); END;
3、 读取OS文件
set serveroutput on ; declare f utl_file.file_type; x varchar2(2000); begin f := utl_file.fopen('UTL_DIR','edw_t01_repay_detail.txt','r'); loop begin utl_file.get_line(f,x); dbms_output.put_line(x); Exception when no_data_found then exit; end; end loop; end;
4、 向OS文件中写ORACLE日志
CREATE OR REPLACE PROCEDURE write_log_to_file (write_text varchar2) IS fileID UTL_FILE.FILE_TYPE; BEGIN fileID := UTL_FILE.FOPEN('UTL_DIR', 'gbicc_'||to_char(sysdate,'YYYYMMDD')||'.log', 'W'); UTL_FILE.PUT_LINE(fileID,write_text||' log is ok!'); UTL_FILE.FCLOSE(fileID); END;
5、 将oracle表导出到OS文件
(1)、简易代码 declare num number; j number := 0; sname varchar2(200); numfile UTL_FILE.FILE_TYPE; temp varchar2(1000); cursor curemp is select * from edw.edw_t01_repay_detail; begin numfile := utl_file.fopen('UTL_DIR', 'edw_t01_repay_detail.txt', 'w'); for i in curemp loop j := j + 1; temp := j || ':' || i.agmt_no || '|' || i.agmt_sub_no || '|' || i.repay_date || '|' || i.core_due_bill_no; utl_file.put_line(numfile, temp); --utl_file.new_line(numfile); end loop; utl_file.fclose(numfile); end; (2)、存储过程实现 CREATE OR REPLACE PROCEDURE write_data_to_file IS fileID UTL_FILE.FILE_TYPE; BEGIN fileID := UTL_FILE.FOPEN('UTL_DIR', 'agmt_bal.dat', 'W'); FOR agmt_bal IN (select * from jbk.edw_t01_agmt_bal_h) LOOP UTL_FILE.PUT_LINE(fileID,agmt_bal.agmt_no||'|'||agmt_bal.agmt_sub_no||'|'||agmt_bal.agmt_bal||'|'||to_char(agmt_bal.start_date,'YYYY-MM-DD')); END LOOP; UTL_FILE.FCLOSE(fileID); END;
6、 有较全信息的可外部调度的向OS中写日志的过程
create or replace procedure write_txtfile( -- 写一个字符串到指定文本文件中 path in varchar2, name in varchar2, pstr in varchar2 ) as l_output utl_file.file_type; str varchar2(1000); begin l_output:=utl_file.fopen(path,name,'a',2000); --每行最大字节数最多为32K bytes --l_output:=utl_file.fopen(path,name,'a'); -- 每行最大字节数最多为1023 bytes utl_file.put_line(l_output,pstr); utl_file.fclose(l_output); exception when utl_file.invalid_path then raise_application_error(-20001,'INVALID_PATH!'); when utl_file.invalid_mode then raise_application_error(-20002,'INVALID_MODE!'); when utl_file.invalid_filehandle then raise_application_error(-20003,'INVALID_FILEHANDLE!'); when utl_file.invalid_operation then raise_application_error(-20004,'INVALID_OPERATION!'); when utl_file.read_error then raise_application_error(-20005,'READ_ERROR!'); when utl_file.write_error then raise_application_error(-20006,'WRITE_ERROR!'); when utl_file.internal_error then raise_application_error(-20007,'INTERNAL_ERROR!'); when others then str:=sqlerrm(sqlcode); dbms_output.put_line(str); end;
分享到:
相关推荐
Oracle学习]ORACLE的UTL_FILE包简析 包UTL_FIle用于读写操作系统的文件,前提是首先创建Directory对象、授权。然后就可以使用UTL_FILE包中提供的类型、过程、函数来读取
oracle utl_file包函数与存储过程的用法
描述oracle utl_file包,大家在使用oralce生成文件过程中可以使用。
UTL_FILE用法详解
在oracle9i中设置utl_file_dir参数.txt
oracle plsql 通过utl_http调用 webservice,包括webservice服务端的源码,以及pro的客户端代码。已测试通过。
UTL_FILE操作文件代码,可以操作所有文件,以二进制的方式读取文件,保存到数据库的blob字段
通过ORACLE的UTL_HTTP工具包发送包含POST参数的请求,包含完成的原创代码、测试说明、相关文档,希望对您的学习有帮助。
在oracle中utl_file包提供了一些操作文本文件的函数和过程,学习了一下他的基本操作 1.创建directory,并给用户授权 代码如下: –创建directory create or replace directory TESTFILE as ‘/home/oracle/zxx/test’...
oracle的utl_file工具包。。。
utl_http.request包探测基本信息.txt
utl_mail oracle scheduler对发邮件的ORACLE包UTL_MAIL以及任务作业详细分析
oracle注入utl_http方法.doc
delphi7做Socket的服务器端,oracle的utl_tcp做Socket的Cliient端.Utl_tcp向server发送信息,并从Server端接收反馈。utl_tcp在PL/SQL Developer 中实现。全部源码。
Oracle P/L SQL实现FTP上传、下载功能,以下是此过程包的头部,包体经常打包处理plb,感兴趣用户可以下载下来。 --Oracle上的FTP功能 Create or Replace Package UTL_FTP AUTHID CURRENT_USER as Type Connection ...
附件带截图 博文链接:https://wm02091070.iteye.com/blog/930174
IBM 服务器安装Windows2003引导镜像,可以安装Windows2003和Windows2003R2,只是引导镜像,需要刻录光盘,需X58老机器亲测可用,X79机型未使用过
utl_file_and_directory_utilities_for_all_operating_systems 关键字:sas sql join合并大数据分析宏oracle teradata mysql sas社区stackoverflow statistics人工智慧AI Python R Java Javascript WPS Matlab SPSS ...
oracle 范文http request接口获取XML,创建表并把样例结果入库 <?xml version="1.0" encoding="utf-8"?> <linked-hash-map> <string>name</string> 字段名称</string> </entry> <string>...
只使用PLSQL就可以直接实现不同服务器间的文件的FTP功能