plsql学习范例--使用utl_file包将查询结果输出到文件中
来源:互联网 发布:网络兼职干什么好 编辑:程序博客网 时间:2024/05/16 23:38
最近在开发过程中需要根据查询结果生成一个HTML文件,用到了utl_file包,对于该包的使用,简单做了一下测试:
--先在数据中创建directory并授权:
SQL> create or replace directory FILEPATH as '/home/oracle/utlfile' ;
Directory created.
SQL> GRANT READ, WRITE ON DIRECTORY FILEPATH to xjny;
Grant succeeded.
--使用UTL_FILE.PUT_LINE生成CSV格式的文件
CREATE OR REPLACE PROCEDURE P_WRITE_ALERTS AS
V_FILE UTL_FILE.FILE_TYPE;
V_BUFFER VARCHAR2(32767);
BEGIN
V_FILE := UTL_FILE.FOPEN('FILEPATH', 'ALERTS' || TO_CHAR(SYSDATE, 'YYYY_MM_DD') || '.csv', 'w', 32767);
V_BUFFER := 'ID,SID,ALERT_CONTENT,ALERT_DATE,ALERT_TYPE,RECORD_DATE';
UTL_FILE.PUT_LINE(V_FILE, V_BUFFER);
FOR I IN
(
SELECT '"' || ID || '","' ||
SID || '","' ||
ALERT_CONTENT || '","' ||
ALERT_DATE || '","' ||
ALERT_TYPE || '","' ||
RECORD_DATE || '" ' RESULT
FROM ALERTS
) LOOP
UTL_FILE.PUT_LINE(V_FILE, I.RESULT);
END LOOP;
UTL_FILE.FCLOSE(V_FILE);
END;
/
--使用UTL_FILE.PUT生成XLS格式的文件
CREATE OR REPLACE PROCEDURE P_WRITE_ALERTS AS
V_FILE UTL_FILE.FILE_TYPE;
V_BUFFER VARCHAR2(32767);
V_FILENAME VARCHAR2(50);
TYPE type_alerts is RECORD
(
id VARCHAR2(50),
sid VARCHAR2(50),
alert_content VARCHAR2(32767),
alert_date VARCHAR2(50),
alert_type VARCHAR2(50),
record_date VARCHAR2(50)
);
rec_alerts type_alerts;
CURSOR C_ALERTS IS
select id||chr(9),sid||chr(9),alert_content||chr(9),
alert_date||chr(9),alert_type||chr(9),record_date||chr(9)
from alerts where rownum<=10;
BEGIN
--V_FILE := UTL_FILE.FOPEN('FILEPATH', 'ALERTS' || TO_CHAR(SYSDATE, 'YYYY_MM_DD') || '.xls', 'w', 32767);
--V_BUFFER := 'ID,SID,ALERT_CONTENT,ALERT_DATE,ALERT_TYPE,RECORD_DATE';
--UTL_FILE.PUT_LINE(V_FILE, V_BUFFER);
OPEN c_alerts;
loop
fetch c_alerts into rec_alerts;
exit when c_alerts%notfound;
V_FILENAME :=substr(rec_alerts.id,1,4);
V_FILE := UTL_FILE.FOPEN('FILEPATH', V_FILENAME, 'w', 32767);
utl_file.put(v_file,rec_alerts.id);
utl_file.put(v_file,rec_alerts.sid);
utl_file.put(v_file,rec_alerts.alert_content);
utl_file.put(v_file,rec_alerts.alert_date);
utl_file.put(v_file,rec_alerts.alert_type);
utl_file.put(v_file,rec_alerts.record_date);
-- utl_file.new_line(v_file,1);
utl_file.fflush(v_file);
utl_file.fclose(v_file);
end loop;
close c_alerts;
END;
/
- plsql学习范例--使用utl_file包将查询结果输出到文件中
- 将 mysql 查询结果输出到文件
- 将 mysql 查询结果输出到文件
- 利用plsql developer的命令或isqlplus将查询结果保存到文件中
- 使用oracle的utl_file包将数据导入到文本
- MySQL将查询结果输出都爱服务器文件中
- Eclipse将输出结果保存到文件中
- 如何将mysql命令行的结果输出到文件中
- oracle中utl_file包读写文件操作学习
- 使用utl_file将oracle数据库中数据写入excel文件
- 使用utl_file将oracle数据库中数据写入excel文件
- Postgresql将查询结果导出到文件中
- 将mysql的查询结果保存到文件中
- 将sqlplus查询结果输出为文件
- 将查询结果注入到DataSet中使用哪个方法?
- 用PLSQL中的UTL_FILE包来读写文件
- 将ping结果输出到txt文件
- 将make编译结果输出到文件
- 单源最短路径
- contentSize、contentInset和contentOffset区别
- android 2.3源码 下载与编译 以前我让我小弟写的,今天看到就转了
- 【Django tutorial1】
- 流水作业调度
- plsql学习范例--使用utl_file包将查询结果输出到文件中
- 哈夫曼编码
- 嵌入式Linux系统下I2C设备驱动程序的开发
- 0-1背包 动态规划
- 求质数算法的N种境界 (N > 10)
- Android 系统启动过程
- Windows核心编程<读书笔记九>线程与内核对象的同步
- android读取文件
- DropdownList添加下拉"请选择"