`
angkorpeach
  • 浏览: 121913 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

oracle存储过程导出txt例子

阅读更多
---------------------------------------------
-- 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 楼 renguistyle 2012-09-12  
UTL_FILE.put(l_file,l_buffer); 
这个一次最多只能写32767个bit的数据,clob字段比较大时就需要循环的往里写多次,这样文件里面会出现不应该存在的换行。这个还不知道怎么处理

相关推荐

    ORACLE 表数据写成TXT文本,CVS等格式存储过程

    ### ORACLE 表数据导出至TXT或CSV格式的存储过程详解 #### 一、背景与目的 在数据库管理工作中,经常会遇到需要将Oracle表中的数据导出为其他格式(如TXT、CSV)的需求,特别是在进行数据分析或者与其他系统进行...

    Oracle照片导出

    Oracle照片导出是一款基于C#开发的工具,主要用于从Oracle数据库中导出Blob类型的图片数据。Blob(Binary Large Object)是Oracle数据库用于存储大对象,如图像、音频或视频文件等非结构化数据的数据类型。这个工具...

    oracle数据快速导出工具

    在这个例子中,`username/password`是数据库连接的用户名和密码,`directory`指定了存储导出文件的目录对象,`dumpfile`是导出文件的名称,而`logfile`则记录了导出过程的日志信息。 传统的Export Utility(exp)是...

    Oracle数据导入导出详解.doc

    Oracle 数据导入导出是...Oracle 数据导入导出的详细操作不仅涉及到命令的正确使用,还需要考虑备份策略、存储安排以及业务连续性等因素。在实际操作中,应结合数据库的规模、业务需求和资源限制来定制合适的备份计划。

    一个ORACLE导入和导出XML文件的例子

    在Oracle中,可以通过编写存储过程等方式来实现XML文件的导入导出。 #### Oracle中XML文件的导入技术分析 首先,我们来看一下Oracle中导入XML文件的具体实现方法。在给定的部分内容中,提供了一个名为`add_to_...

    Oracle数据库导入导出

    在压缩包中,有两个批处理文件:`expdp导出例子.bat`和`impdp导入例子.bat`,它们分别演示了如何运行`expdp`和`impdp`命令。批处理文件可以简化重复的命令执行过程,尤其在处理大型数据库时非常有用。在使用前,需要...

    从 Oracle数据库中导出SQL脚本.doc

    从 Oracle 数据库中导出 SQL 脚本 Oracle 数据库是一个功能强大且复杂的关系数据库管理系统,提供了多种方式来导出数据库对象的创建和申明的 SQL 脚本。下面将详细介绍如何从 Oracle 数据库中导出 SQL 脚本。 获取...

    Oracle从11g导出到10g

    - `directory=directory_name`:指定存储导出文件的位置目录。这里使用的是`DATA_PUMP_DIR`。 - `dumpfile=dumpfile_name`:指定导出文件的名称,在这个例子中为`aa.dmp`。 - `logfile=log_file_name`:指定日志...

    oracle数据导入导出

    Oracle 数据导入导出是数据库管理中的重要操作,用于迁移数据、备份或恢复数据库。本文将详细介绍如何在 Oracle 数据库中进行数据的导入和导出,以及相关操作的注意事项。 首先,Oracle 数据导出通常使用 `exp` 或 ...

    Python使用cx_Oracle模块将oracle中数据导出到csv文件的方法

    在Python编程中,有时我们需要将Oracle数据库中的数据导出到CSV文件中,以便于数据分析、存储或传输。这里我们将详细探讨如何使用cx_Oracle模块和csv模块来实现这个功能。 首先,cx_Oracle是Python中用于连接Oracle...

    Oracle导入导出xml[借鉴].pdf

    本文将详细介绍如何在Oracle中处理XML数据,包括创建测试表、XML文件示例以及导入XML文件到数据表的存储过程。 首先,我们需要创建一个测试表来存储XML数据。例如,我们创建了一个名为PEOPLE的表,它包含PERSONID...

    存储过程完整语句获取办法.docx

    下面我们将详细探讨如何在PL/SQL Developer中获取Oracle存储过程的完整文本。 首先,你需要设置一个变量`SQLSTR`,这个变量的数据类型应为`LONG`,因为存储过程的源代码可能非常长。`LONG`数据类型在Oracle中用于...

    【数据泵】EXPDP导出表结构(真实案例).pdf

    - 使用数据泵工具可以导出和导入表结构、索引、函数、包和存储过程等元数据信息。 - 导出(EXPDP)和导入(IMPDP)操作是基于参数文件进行的,参数文件中可以指定需要导出或导入的数据类型、对象和过滤条件等。 2...

    oracle资料例子教程

    例如,如何使用SQL语句(如CREATE TABLE、ALTER TABLE、INSERT INTO、SELECT等)来创建和管理数据,如何使用PL/SQL(Oracle的Procedural Language/Structured Query Language)编写存储过程和触发器,以及如何优化...

    oracle10g导入导出工具.pdf

    2. 方案导出:整个方案,包括所有对象,如表、视图、存储过程等,都可以一次性导出。 3. 表空间导出:针对特定表空间进行数据导出。 4. 数据库导出:这是最全面的导出,包含数据库的所有对象和数据。 接下来,我们...

    Java导入导出Oracle[文].pdf

    4. **创建表空间**:在Oracle数据库中,表空间(Tablespace)是用来存储数据库对象(如表、索引等)的逻辑单位。在Java程序中创建表空间可能涉及SQL语句,例如: ```java String sql = "CREATE TABLESPACE back2 ...

    oracle 方便快捷的数据导入/导出命令

    Oracle 数据库是一个强大的关系型数据库管理系统,用于存储和管理大量数据。在日常操作中,数据导入和导出是常见的任务,对于数据迁移、备份和恢复至关重要。本篇将重点介绍Oracle中方便快捷的数据导入/导出命令,...

Global site tag (gtag.js) - Google Analytics