设为首页 收藏本站
查看: 680|回复: 0

[经验分享] oracle存储过程导出txt例子

[复制链接]

尚未签到

发表于 2016-8-8 07:35:02 | 显示全部楼层 |阅读模式
---------------------------------------------
-- Export file for user JHMCC              --
-- Created by sysman on 2009-4-1, 13:49:27 --
---------------------------------------------
spool 123.log
prompt
prompt Creating procedure READ_BLOB_DOC
prompt ================================
prompt
CREATE OR REPLACE PROCEDURE JHMCC.Read_Blob_doc
(
-- Author  : wujing
-- Created : 2008-2-28
-- Purpose : 结合 UTL_FILE与DBMS_LOB包,将clob字段内容导入文件
filename varchar2
--CREATE OR REPLACE DIRECTORY DOCS AS 'F:\MyOem' :必要条件,申明 DOCS 路径变量
)
as
l_file UTL_FILE.FILE_TYPE;
l_buffer VARCHAR2(32767); --缓存区,保证极限大
--l_buffer RAW(32767);
l_amount BINARY_INTEGER:=1000; --每次读取的最大字节数,可自由调节,切忌接近32767
l_pos NUMBER:=1;
l_Blob clob;
l_Blob_len Number;
BEGIN
SELECT t.zlnr INTO l_Blob FROM zl_info_nr t
where t.zlcode='2008122601764';
--2008122601764
--2008122516884
l_Blob_len:=dbms_lob.getlength(l_Blob);
l_file:=UTL_FILE.FOPEN('DOCS',filename,'W');
-- R: 只读模式
-- A: 追加读写模式
-- W: 刷新读写模式
--UTL_FILE.GET_LINE(l_file,l_buffer);
--dbms_output.put_line(l_buffer);
utl_file.put_line(l_file,'jobs表导出数据');
WHILE l_pos<l_Blob_len LOOP
DBMS_LOB.READ(l_Blob,l_amount,l_pos,l_buffer);
UTL_FILE.put_line(l_file,l_buffer);
UTL_FILE.FFLUSH(l_file);
--UTL_FILE.PUT_RAW(l_file,l_buffer,TRUE);
l_pos:=l_pos+l_amount;
END LOOP;
UTL_FILE.FCLOSE(l_file);
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line(substr(l_buffer,1,200));--捕捉出错的数据段
utl_file.put_line(l_file,'妈的,导入出错了');
IF UTL_FILE.IS_OPEN(l_file) THEN
UTL_FILE.FCLOSE(l_file);
END IF;
--RAISE;
END Read_Blob_doc;
  
  说明:我同事吴靖的作品,本人都没怎么看懂,如果需要看懂请查阅UTL_FILE相关资料!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-254651-1-1.html 上篇帖子: Oracle 使用LAG和LEAD函数统计 下篇帖子: ORACLE批量绑定FORALL与BULK COLLECT
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表