`

Oracle写入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配置,稍微复杂点 

 

方法2的另一种方法:(导出大数据量)

 

写道
--将select * from scott.mobileoperatelog_history表的数据导出到文本文件中

create or replace directory utlexportpath as 'c:\'; --Oracle所在服务器的目录

declare
outfile utl_file.file_type;
begin
outfile := utl_file.fopen('UTLEXPORTPATH','exp.txt','W');
for rec in (
select id,
usertype,
usercode,
pagename,
typeno,
description,
operatetime,
result,
ipaddress from scott.mobileoperatelog_history where rownum<=1000000)
loop
utl_file.put_line(
outfile, rec.id||','||
rec.usertype||','||
rec.usercode||','||
rec.pagename||','||
rec.typeno||','||
rec.description||','||
rec.operatetime||','||
rec.result||','||
rec.ipaddress);
end loop;
utl_file.fclose(outfile);
end;

--耗时63秒

--下面是Linux服务器中的Oracle

create or replace directory utlexportpath as '/home/oracle';--Oracle所在服务器的目录
declare
outfile utl_file.file_type;
begin
outfile := utl_file.fopen('UTLEXPORTPATH','exp.txt','W');
for rec in (
select toneid,successprovincename,failprovincename,successrate,eventinfo from synccrbtdeployresultevt)
loop
utl_file.put_line(
outfile, rec.toneid||'|'||
rec.successprovincename||'|'||
rec.failprovincename||'|'||
rec.successrate||'|'||
rec.eventinfo);
end loop;
utl_file.fclose(outfile);
end;
--230万数据,耗时118秒

 

优点:这种方法就不需要什么配置,只要创建目录就可以使用,

缺点:要求用户具有写入UTLEXPORTPATH权限

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    oracle导出txt文件方法

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

    数据库写入txt文档

    本篇将详细讲解如何实现"数据库写入txt文档"这一过程,以及相关知识点。 首先,我们需要理解数据库的基本概念。数据库是一个组织和存储数据的系统,它可以支持数据的高效检索和管理。常见的关系型数据库有MySQL、...

    C# 通过oracle sqlldr 将TXT批量导入oracle

    C# 通过oracle sqlldr 将TXT批量导入oracle 一个文件夹里有大量的TXT文件,以"~"区分各字段. 这个程序能批量将此文件夹里的所有的文件导入oralce 并按日期把已导入的TXT文件复制另一个文件夹

    用java编程将txt文件数据导入oracle

    "Java编程将TXT文件数据导入Oracle数据库" Java 编程将 TXT 文件数据导入 Oracle 数据库是指使用 Java 语言编写程序将 TXT 文件中的数据导入 Oracle 数据库中,以方便进行计算、统计等操作。下面将详细介绍该知识...

    oracle导出txt文的工具

    ociuldr会执行脚本中的SQL查询,然后将结果写入TXT文件。 4. **处理输出**:ociuldr生成的TXT文件通常按照特定格式,例如每行代表一条记录,每列之间用分隔符隔开。你可以使用文本编辑器或编程语言解析这些文件,...

    HS_data.rar_c++ 写入 oracle_oracle_写入oracle

    标题中的"HS_data.rar_c++ 写入 oracle_oracle_写入oracle"表明这是一个关于使用C++编程语言将数据从文本文件(可能是HS_data.txt)读取并存储到Oracle数据库的项目。描述进一步说明了该过程是在vc++6.0集成开发环境...

    Java将oracle数据导出为txt文件

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

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

    4. **写入文件**:遍历查询结果,逐行将数据写入TXT文件中,同时处理分隔符以及字符串格式化问题。 5. **关闭资源**:最后关闭文件句柄及游标,释放资源。 #### 三、关键代码解读 ##### 1. 变量定义与初始化 ```...

    如何把ORACLE的查询结果输出成TXT文件

    输出 ORACLE 查询结果到 TXT 文件 在 Oracle 中,输出查询结果到 TXT 文件可以通过设置多个参数来实现。下面是详细的知识点: 1. 设置每行的字符数目 使用 `set linesize` 命令可以设置每行的字符数目,最大值为 ...

    Oracle目录SQL请求转TXT.rar_oracle_数据集TXT

    4. 将结果集写入TXT文件:遍历游标,将每一行数据转化为字符串,逐行写入TXT文件。在处理过程中,可能需要考虑字段分隔符、换行符以及可能的特殊字符转义。 5. 错误处理:捕获并处理可能的异常,如网络问题、权限...

    ExcelToTxt.zip_133788txt_Excel转换Txt_exceltotxt_mysql txt_oracle

    这个工具可能提供了这样的功能,通过读取Excel文件中的数据,然后将其按照指定格式写入TXT文件。 接下来,我们探讨一下与MySQL和Oracle数据库的连接操作。MySQL是一个开源的关系型数据库管理系统,常用于网站开发和...

    Oracle中如何用一条SQL快速生成10万条测试数据.txt

    在Oracle数据库中,通过一条SQL语句快速生成大量测试数据是一项非常实用的技能。本文将详细介绍如何利用Oracle中的特性来实现这一目标。 ### 核心知识点:使用一条SQL语句快速生成10万条测试数据 #### 1. 使用`...

    导入txt文件到oracle数据库

    本教程将详细讲解如何将TXT文件中的数据导入到Oracle数据库,并利用Map进行操作,同时涉及文件流、截取字符串以及Map的相关知识点。 首先,我们需要理解文件流的概念。在Java编程中,文件流是处理输入/输出(I/O)的...

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

    2. **编程接口**:通过Python的`pyodbc`或`pandas`库,可以连接到Oracle数据库,查询数据并使用`dbfpy`库将其写入DBF文件。 最后,关于FTP自动下载脚本,这通常涉及到批处理和计划任务。你可以编写一个shell脚本,...

    【Oracle 并发】

    本文将深入探讨Oracle并发控制机制及其在实际应用中的重要性,结合提供的"ORACLE.txt"文件,我们可以进一步理解Oracle如何处理并发问题。 并发控制在多用户环境中至关重要,因为它确保了数据的一致性和完整性,避免...

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

    4. **写入数据**:遍历OracleDataReader的结果集,将数据逐行写入Excel工作表。 ```csharp int row = 1; while (reader.Read()) { for (int col = 0; col ; col++) { worksheet.Cells[row, col + 1] = reader...

    oracle通过日志查看数据库变更情况.txt

    首先,需要设置`utl_file_dir`参数,该参数指定Oracle可以访问的文件目录,通常用于读取或写入文件。例如,在示例中,该参数被设置为`'d:\\ull\\logs\\'`。 #### 步骤二:构建字典文件 接下来,使用DBMS_LOGMNR的`...

    E:\oracle教材\Oracle体系结构.txt

    根据提供的文件信息,我们可以深入探讨Oracle数据库的体系结构与关键组件。这部分内容主要涉及Oracle数据库的基本组成部分、系统全局区(SGA)、后台进程以及相关的内存管理等知识点。 ### Oracle数据库基本概念 ...

    易语言连接远程Oracle数据库源码

    "使用说明.txt"则提供了连接和操作Oracle数据库的详细步骤和注意事项,可能包括环境配置、错误处理、优化建议等内容。 总之,通过易语言和ADODB组件,开发者可以编写出连接并操作远程Oracle数据库的程序,实现数据...

    oracle压缩.txt

    ### Oracle数据库中的表压缩技术详解 #### 一、概述 Oracle数据库提供了多种压缩技术来减少存储空间的需求,提高I/O效率。这些技术包括基本压缩(Basic Compression)、在线事务处理压缩(OLTP Compression)、仓库压缩...

Global site tag (gtag.js) - Google Analytics