方法一:使用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配置,稍微复杂点
相关推荐
可以把oracle中大量数据导出为txt格式,便于在线下载、存储等后续处理。已经测试过,可以执行。
2. **Oracle Data Pump(expdp)**:Data Pump是Oracle提供的一种高效的数据导出工具,支持大量数据和复杂对象。使用expdp,你可以创建一个导出作业,将数据导出到目录对象,然后从那里将文件转换为CSV。例如: ```...
在数据库管理中,有时我们需要将数据从一个环境迁移到另一个环境,或者备份某些表的数据,这时“Oracle导出INSERT语句”的工具就显得非常实用。 这个小工具的核心功能是将Oracle数据库中的数据转换为一系列的INSERT...
非常好用的,速度超快,免费的。请支持原作者,微博名:云计算民工。我只是搬运工。教程请自行去搜。
此外,如果你有大量数据,可能需要考虑分批导入,以防止Excel内存溢出。 另外,除了手动操作和编写VBA宏,还可以利用一些第三方工具,如SQL Server Management Studio (SSMS) 的“导出数据”功能,或专门的数据迁移...
exp 命令用于将 Oracle 数据库数据导出到文件中,而 imp 命令用于将数据从文件中导入到 Oracle 数据库中。这些命令可以在命令行中使用,例如,在 Windows 中,可以打开命令行窗口,输入 exp 用户名/密码@标识 file=d...
在Oracle数据库上导出上千万上亿数据的工具 cmd 到本目录 然后执行如下命令: ->sqluldr2.exe user=用户名/密码@数据库 query="查询语句" table=表名 head=yes FILE=存放路径 例如:sqluldr2.exe user=u/pass@db ...
通常,这个过程手动操作会非常繁琐,尤其是在处理大量数据时。通过使用此工具,我们可以显著提高工作效率,避免手动编写或复制粘贴的错误。 首先,我们来理解一下INSERT语句在SQL中的作用。INSERT语句是用来向...
- **EXPDP/IMPDP (Oracle 10g及以后版本)**: 这是Oracle 10g引入的新工具,相比EXP/IMP提供了更多的功能和更高的性能,特别是在处理大量数据时更为高效。 - **导出命令示例**: - 导出整个数据库: ```sql EXPDP ...
在描述中提到的“Oracle导出Clob,Blob等大字段工具”就是为了解决这个问题而设计的,它是一个自编写的实用程序,方便用户导出和管理Oracle数据库中的大对象数据。 Oracle数据库中的Clob类型用于存储大量的文本数据...
这种做法的优点在于代码通用性较强,但缺点是当处理大量数据时,可能会消耗大量 JVM 内存,导致性能下降。以下是一个示例代码: ```java public static void testExport1() { // 连接数据库,执行 SQL 查询,并将...
这两个实用程序允许用户高效地迁移大量数据,同时也支持数据转换和字符集调整。 1. **导出(Export)** - `expdp` 命令用于将数据库对象和数据导出到一个或多个转储文件中。基本语法如下: ``` expdp [username/...
"Oracle导出Clob,Blob工具版本2" 是一个专为解决这个问题而设计的应用程序,它改进了对CLOB(Character Large Object)和BLOB(Binary Large Object)数据类型的导出效率,特别是修复了上一版本中导出时间过长的问题...
Oracle数据库是世界上最流行的数据库管理系统之一,它广泛应用于各种企业级应用中存储大量数据。而Excel则是微软Office套件中的一个工具,用于创建、编辑和分析数据,尤其在数据可视化和报表制作方面表现突出。有时...
Oracle数据库是全球广泛使用的大型关系型数据库管理系统之一,它提供了丰富的功能来管理和处理大量数据。在实际工作中,经常需要将Oracle数据库中的数据导出到其他地方进行备份、迁移或者分析。"Oracle数据库导出...
在IT行业中,数据库管理和数据...同时,考虑到性能问题,对于大量数据的导出,你可能需要分批处理,或者考虑使用其他高效的数据导出策略。在实际应用中,还应处理可能出现的异常,例如数据库连接失败、文件保存错误等。
Oracle 数据导入导出是数据库管理中的重要操作,用于在不同环境之间迁移数据、备份或恢复数据,以及批量加载大量数据。Sql Loader(SQL*Loader)是Oracle提供的一种高效的数据加载工具,可以快速将数据从外部文件...
当面对大规模的数据库时,单个转储文件可能无法满足需求,这时就需要利用多个转储文件来导出大量数据。 在 Oracle 8i 及更早版本中,通过设置 `FILE` 参数并指定多个文件路径,可以实现数据的分块导出。例如,如果...
Oracle 数据泵(Data Pump)是Oracle数据库从10g版本开始引入的一种高效的数据导入和导出工具,相较于传统的EXP和IMP工具,它在处理大量数据时具有显著的性能优势。本文将详细介绍数据泵的主要特点、工作原理以及...