日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

plsql学习范例--使用utl_file包将查询结果输出到文件中

發布時間:2024/8/26 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 plsql学习范例--使用utl_file包将查询结果输出到文件中 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
最近在開發過程中需要根據查詢結果生成一個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包将查询结果输出到文件中的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。