`

Oracle导出数据到txt

阅读更多
方法一:使用SQLPlus的spool命令
操作步骤
1. 新建一个脚本文件,存放起来,如D:\spool.sql,具体代码如下
set echo off --在用start命令执行一个sql脚本时,是否显示脚本中正在执行的SQL语句
set feedback off --是否显示当前sql语句查询或修改的行数
set newpage none --会在页和页之间没有任何间隔
set verify off --
set pagesize 0 --分多少页
set term off --在用spool命令将一个大表中的内容输出到一个文件中时,将内容输出在屏幕上会耗费大量的时间,设置set termspool off后,则输出的内容只会保存在输出文件中,不会显示在屏幕上,极大的提高了spool的速度。
set trims on --将SPOOL输出中每行后面多余的空格去掉 
set linesize 600 --设置屏幕显示行宽,默认100 
set heading off --禁止输出列标题 
set timing off --默认为OFF,设置查询耗时,可用来估计SQL语句的执行时间,测试性能
set numwidth 38
SPOOL D:\aaa.txt
select UserTelNo || ',' || to_char(ReceiveTime,'yyyy-MM-dd HH24:MI:SS') || ',' || UserContent || ',' || ReplyContent FROM LogSMSHall_Mutual WHERE rownum<=100;
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即可。
DECLARE
row_result varchar2(1024);
selectsql varchar2(1024);
qrycursor SYS_REFCURSOR;
txt_handle UTL_FILE.file_type;
BEGIN
  selectsql := ' select bizname ||''  ''|| bizstatus from bizbusinessbaseinfo ';
  txt_handle := UTL_FILE.FOPEN('D:/UTL','a.txt','w');
  open qrycursor for selectsql;
  loop  
      fetch qrycursor into row_result;
      exit when qrycursor%notfound;  
      UTL_FILE.PUT_LINE(txt_handle,row_result);
  end loop;  
  --关闭游标  
  close qrycursor;
  UTL_FILE.FCLOSE(txt_handle);
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配置,稍微复杂点
分享到:
评论
3 楼 jiemushe1814 2015-11-18  
好东西,很有用,很全面,点赞。
2 楼 wt_kelly 2013-12-30  
1 楼 cntjfaj 2012-12-10  
谢谢分享。

相关推荐

    oracle导出txt文件方法

    Oracle 导出 txt 文件方法是指使用 spool 命令将 Oracle 数据库中的数据导出到 txt 文件中。这种方法可以自定义导出格式,以便于程序直接导入。 首先,我们需要了解 Oracle 文本导出的原理。Oracle 文本导出的原理...

    Java将oracle数据导出为txt文件

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

    Oracle 大批量导出至txt文件.txt

    Oracle 大批量导出至txt文件 新建一个命令窗口,执行下面脚本。注意修改目标文件名、表名

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

    在这里,`directory`是指数据库中的目录对象,`dumpfile`是你想要的输出文件名,`logfile`记录了导出过程的日志,`content=DATA_ONLY`表示只导出数据,`rows=yes`表示包含行数据。 接下来,我们讨论Oracle数据导出...

    定时导出Oracle数据库数据并上传到FTP目录脚本

    在这个场景中,我们需要创建一个BAT脚本来实现从Oracle数据库定时导出数据,并通过FTP将这些数据上传到远程服务器。 首先,我们需要了解Oracle数据库的基本操作。Oracle提供了多种数据导出工具,如SQL*Plus的`spool...

    Oracle数据导出导入简介

    ### Oracle 数据导出导入简介 #### 一、Oracle数据库的基本概念 Oracle数据库是一个关系型数据库管理系统,由不同的表空间组成,其中包括至少一个SYSTEM表空间。表空间是Oracle中用于管理存储空间的重要概念。 - ...

    oracle导出txt文的工具

    "ociuldr"是一个专门为实现这个目标而设计的工具,它能够高效地从Oracle数据库中导出数据到TXT文件。 ociuldr工具基于Oracle Call Interface (OCI),这是Oracle提供的一个编程接口,允许开发者直接与Oracle数据库...

    oracle 定时导出脚本

    3. **执行Oracle导出命令**:使用Oracle的`expdp`命令(这里简写为`expsystem/password`)来导出数据至指定路径,并以`fmt`变量值作为导出文件名的一部分。 4. **参数文件指定**:通过`PARFILE`变量指定参数文件路径...

    Oracle数据库导出导出Execl,txt,word等文档数据

    在日常的数据库管理和维护工作中,经常需要将Oracle数据库中的数据导出到其他格式的文件中,比如Excel、TXT或者Word等,以便于进一步的数据分析、处理或共享。本文将详细介绍如何使用Oracle提供的工具和技术实现这些...

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

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统之一,其数据导入导出功能是数据库管理和维护中的重要环节。本文将深入探讨Oracle数据库的导入导出命令,特别是如何更改字符集的相关知识。 首先,Oracle...

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

    - **expdp**:用于导出数据,它创建一个DMP文件,包含了数据库对象的元数据和实际数据。 - **impdp**:用于导入数据,可以从DMP文件中恢复数据到数据库中。 2. **Sql Loader (sqlldr)** Sql Loader是一种命令行...

    oracle导入导出语句.txt

    在Oracle数据库管理中,数据的导入与导出是常见的操作之一,主要用于数据迁移、备份或恢复等场景。本文将深入解析Oracle的导入导出语句,包括其基本语法、应用场景及高级用法,帮助读者更好地理解和掌握Oracle的导出...

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

    通过以上步骤,你已经成功地使用C#将Oracle数据库表的数据导出到Excel文件中。这个过程在数据报告、分析或备份等场景中非常实用。值得注意的是,如果你的应用程序不需要依赖Office软件,还可以考虑使用其他库,如...

    oracle下导出某用户所有表的方法

    为了方便用户对数据库中的数据进行管理和维护,Oracle 提供了多种导出数据的方法。下面将详细介绍 Oracle 下导出某用户所有表的方法。 方法一: 按用户方式导出数据 首先,需要使用 exp 命令来导出某用户所有表的...

    oracle中数据的导入与导出.txt

    4. 其他高级选项:包括只导出数据(`content=data_only`)、只导出元数据(`content=metadata_only`)、排除表(`exclude=table`)等。 二、导入(Import) 导入数据则通过`impdp`(Data Pump Import)工具实现,...

    Oracle和Access表之间的导入和导出

    要将Oracle中的数据导出到Access,你可以通过以下方法: - **使用SQL查询**:编写SQL SELECT语句,从Oracle中提取所需数据,然后将结果保存为CSV或TXT文件,再导入到Access中。 - **使用ODBC**:配置Oracle的ODBC...

    oracle定时存储过程导出用户表或者指定表及数据导出CSV文件

    定时导出oracle指定用户下指定表的所有数据及格式生成CSV文件,通过存储过程; 1.使用特定用户或者system登陆到oracle执行"存储过程.txt"里面的脚本生成对应的存储过程; (说明:存储过程.txt脚本说明,查询指定用户下...

    MySQL导出数据并通过sqlldr导入oracle

    MySQL数据导入到Oracle的中间件,其工作原理是将MySQL数据的导出命令写入到d:/mysqltooracle/exportcmd.txt,打开该文件即可获取需要手动执行的导出MySQL数据的sql脚本,执行后会在 “/var/mysqltooracle”(针对...

    使用toad导出oracle数据库某个或多个表中的数据[整理].pdf

    在导出数据的过程中,我们可以选择不同的文件格式,例如 CSV、TXT、SQL 等。我们也可以选择是否导出表结构信息。 此外,我们还可以使用 Toad 来导出数据库服务器上的所有表中的数据。我们可以点击 "Database" -&gt; ...

Global site tag (gtag.js) - Google Analytics