`
楚若之夜
  • 浏览: 124972 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

ORCLE导出大量数据到txt

 
阅读更多

方法一:使用SQLPlus的spool命令 
操作步骤 
1. 新建一个脚本文件,存放起来,如D:\spool.sql,具体代码如下 

Sql代码  收藏代码
  1. set echo off --在用start命令执行一个sql脚本时,是否显示脚本中正在执行的SQL语句  
  2. set feedback off --是否显示当前sql语句查询或修改的行数  
  3. set newpage none --会在页和页之间没有任何间隔  
  4. set verify off --  
  5. set pagesize 0 --分多少页  
  6. set term off --在用spool命令将一个大表中的内容输出到一个文件中时,将内容输出在屏幕上会耗费大量的时间,设置set termspool off后,则输出的内容只会保存在输出文件中,不会显示在屏幕上,极大的提高了spool的速度。  
  7. set trims on --将SPOOL输出中每行后面多余的空格去掉   
  8. set linesize 600 --设置屏幕显示行宽,默认100   
  9. set heading off --禁止输出列标题   
  10. set timing off --默认为OFF,设置查询耗时,可用来估计SQL语句的执行时间,测试性能  
  11. set numwidth 38  
  12. SPOOL D:\aaa.txt  
  13. select UserTelNo || ',' || to_char(ReceiveTime,'yyyy-MM-dd HH24:MI:SS') || ',' || UserContent || ',' || ReplyContent FROM LogSMSHall_Mutual WHERE rownum<=100;  
  14. SPOOL OFF  


注意如果有clob字段的话,最好用to_char函数进行转换。 
2. 用sqlplus登录到oracle数据库 
如果是在数据库本机,直接在命令行(WIN+R->CMD)窗口,输入“SQLPlus [用户名]/[密码]”即可。 
如果远程登录,在命令行中输入“SQLPlus [用户名]/[密码]@[数据库IP地址:监听端口号]/[数据库实例名称]”,回车即可。如“sqlplus Ajita/1@192.168.85.136:1521/orcl”。 
3. 执行脚本文件 
在SQLPlus命令窗口中执行步骤1中的脚本文件。命令方式为“@[脚本文件位置]”,如“@D:\spool.sql” 

优点:简单易用 
缺点:不容易封装成存储过程 

方法二:使用UTL_FILE包的文件操作命令 
操作步骤(只需要一步,也可以封装成存储过程) 
编写PL/SQL过程,导出到txt即可。 

Sql代码  收藏代码
  1. DECLARE  
  2. row_result varchar2(1024);  
  3. selectsql varchar2(1024);  
  4. qrycursor SYS_REFCURSOR;  
  5. txt_handle UTL_FILE.file_type;  
  6. BEGIN  
  7.   selectsql := ' select bizname ||''  ''|| bizstatus from bizbusinessbaseinfo ';  
  8.   txt_handle := UTL_FILE.FOPEN('D:/UTL','a.txt','w');  
  9.   open qrycursor for selectsql;  
  10.   loop    
  11.       fetch qrycursor into row_result;  
  12.       exit when qrycursor%notfound;    
  13.       UTL_FILE.PUT_LINE(txt_handle,row_result);  
  14.   end loop;    
  15.   --关闭游标    
  16.   close qrycursor;  
  17.   UTL_FILE.FCLOSE(txt_handle);  
  18. end;  



注意事项: 
如果没有设置参数utl_file_dir参数,本方法会报ora 29280的错误,解决方案有两种。 
1. 设置utl_file_dir参数,两种方式: 
a) 在init.ora中设置,直接修改文件即可 
b) 在sqlplus命令行设置 
alter system set utl_file_dir=* scope=spfile; 
注意设置utl_file_dir的要点:  
    utl_file_dir=*      这表示你能操作任何目录,尽量不要用  
    utl_file_dir=d:\    这表示你能操作d:\目录下的文件,但你不能操作d:\目录下的子目录  
    注意在设置 utl_file_dir=路径时,如果路径是长路径名,例如c:\my    temp目录,则你必须加上'',例如:         utl_file_dir='c:\my    temp'  
    utl_file_dir可以是多个路径  utl_file_dir=c:\,d:\,d:\temp,'c:\my    temp'  
    设置完必须重新启动数据库 

2. 创建自己的目录(不需要重启数据库) 
在命令行中执行命令create or replace directory MY_DIR  as 'c:/abc';即可。然后调用的时候,把frw:=utl_file.fopen('c:\abc','emp.txt','w');改成frw:=utl_file.fopen('MY_DIR','emp.txt','w');注意MY_DIR要大写。 

优点:容易封装成存储过程 
缺点:要使用UTL_FILE配置,稍微复杂点 

分享到:
评论

相关推荐

    Java将oracle数据导出为txt文件

    可以把oracle中大量数据导出为txt格式,便于在线下载、存储等后续处理。已经测试过,可以执行。

    各种导出脚本工具_oracle_oracle导出csv_oracle数据导出脚本_txt导出为dbf_

    2. **Oracle Data Pump(expdp)**:Data Pump是Oracle提供的一种高效的数据导出工具,支持大量数据和复杂对象。使用expdp,你可以创建一个导出作业,将数据导出到目录对象,然后从那里将文件转换为CSV。例如: ```...

    Oracle导出INSERT语句

    在数据库管理中,有时我们需要将数据从一个环境迁移到另一个环境,或者备份某些表的数据,这时“Oracle导出INSERT语句”的工具就显得非常实用。 这个小工具的核心功能是将Oracle数据库中的数据转换为一系列的INSERT...

    oracle 快速导出数据至cvs文件

    非常好用的,速度超快,免费的。请支持原作者,微博名:云计算民工。我只是搬运工。教程请自行去搜。

    oracle导出表结构到excel中

    此外,如果你有大量数据,可能需要考虑分批导入,以防止Excel内存溢出。 另外,除了手动操作和编写VBA宏,还可以利用一些第三方工具,如SQL Server Management Studio (SSMS) 的“导出数据”功能,或专门的数据迁移...

    Java导出Oracle数据库数据

    exp 命令用于将 Oracle 数据库数据导出到文件中,而 imp 命令用于将数据从文件中导入到 Oracle 数据库中。这些命令可以在命令行中使用,例如,在 Windows 中,可以打开命令行窗口,输入 exp 用户名/密码@标识 file=d...

    Oracle大数据批量导出工具

    在Oracle数据库上导出上千万上亿数据的工具 cmd 到本目录 然后执行如下命令: -&gt;sqluldr2.exe user=用户名/密码@数据库 query="查询语句" table=表名 head=yes FILE=存放路径 例如:sqluldr2.exe user=u/pass@db ...

    Oracle导出INSERT语句V1.1

    通常,这个过程手动操作会非常繁琐,尤其是在处理大量数据时。通过使用此工具,我们可以显著提高工作效率,避免手动编写或复制粘贴的错误。 首先,我们来理解一下INSERT语句在SQL中的作用。INSERT语句是用来向...

    Oracle数据导出导入简介

    - **EXPDP/IMPDP (Oracle 10g及以后版本)**: 这是Oracle 10g引入的新工具,相比EXP/IMP提供了更多的功能和更高的性能,特别是在处理大量数据时更为高效。 - **导出命令示例**: - 导出整个数据库: ```sql EXPDP ...

    Oracle导出Clob,Blob工具

    在描述中提到的“Oracle导出Clob,Blob等大字段工具”就是为了解决这个问题而设计的,它是一个自编写的实用程序,方便用户导出和管理Oracle数据库中的大对象数据。 Oracle数据库中的Clob类型用于存储大量的文本数据...

    oracle导出数据的几种方法

    这种做法的优点在于代码通用性较强,但缺点是当处理大量数据时,可能会消耗大量 JVM 内存,导致性能下降。以下是一个示例代码: ```java public static void testExport1() { // 连接数据库,执行 SQL 查询,并将...

    oracle数据库导入导出命令! 更改字符集

    这两个实用程序允许用户高效地迁移大量数据,同时也支持数据转换和字符集调整。 1. **导出(Export)** - `expdp` 命令用于将数据库对象和数据导出到一个或多个转储文件中。基本语法如下: ``` expdp [username/...

    Oracle导出Clob,Blob工具版本2

    "Oracle导出Clob,Blob工具版本2" 是一个专为解决这个问题而设计的应用程序,它改进了对CLOB(Character Large Object)和BLOB(Binary Large Object)数据类型的导出效率,特别是修复了上一版本中导出时间过长的问题...

    ORACLE导出到EXCEL

    Oracle数据库是世界上最流行的数据库管理系统之一,它广泛应用于各种企业级应用中存储大量数据。而Excel则是微软Office套件中的一个工具,用于创建、编辑和分析数据,尤其在数据可视化和报表制作方面表现突出。有时...

    Oracle数据库导出数据工具

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统之一,它提供了丰富的功能来管理和处理大量数据。在实际工作中,经常需要将Oracle数据库中的数据导出到其他地方进行备份、迁移或者分析。"Oracle数据库导出...

    将(Oracle)数据库表导出到Excel,并生成文件(C#实现)

    在IT行业中,数据库管理和数据...同时,考虑到性能问题,对于大量数据的导出,你可能需要分批处理,或者考虑使用其他高效的数据导出策略。在实际应用中,还应处理可能出现的异常,例如数据库连接失败、文件保存错误等。

    关于 Oracle 的数据导入导出及 Sql Loader (sqlldr)

    Oracle 数据导入导出是数据库管理中的重要操作,用于在不同环境之间迁移数据、备份或恢复数据,以及批量加载大量数据。Sql Loader(SQL*Loader)是Oracle提供的一种高效的数据加载工具,可以快速将数据从外部文件...

    利用多个转储文件导出大量Oracle数据

    当面对大规模的数据库时,单个转储文件可能无法满足需求,这时就需要利用多个转储文件来导出大量数据。 在 Oracle 8i 及更早版本中,通过设置 `FILE` 参数并指定多个文件路径,可以实现数据的分块导出。例如,如果...

    oracle 数据泵与传统的导入导出的区别与实践

    Oracle 数据泵(Data Pump)是Oracle数据库从10g版本开始引入的一种高效的数据导入和导出工具,相较于传统的EXP和IMP工具,它在处理大量数据时具有显著的性能优势。本文将详细介绍数据泵的主要特点、工作原理以及...

Global site tag (gtag.js) - Google Analytics