oracle 导出数据到文件
来源:互联网 发布:大数据产业链包括 编辑:程序博客网 时间:2024/04/30 14:55
方法一:使用SQLPlus的spool命令
操作步骤
1. 新建一个脚本文件,存放起来,如D:\spool.sql,具体代码如下
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即可。
Sql代码 收藏代码
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’
设置完必须重新启动数据库
- 创建自己的目录(不需要重启数据库)
在命令行中执行命令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导出数据到文件
- oracle 导出数据到文件
- oracle导出数据到文件中的方法
- oracle 使用spool导出数据到文件
- sqluldr2导出oracle数据到文件
- Oracle将数据导出到CSV文件
- Oracle将数据导出到CSV文件
- Oracle将数据导出到CSV文件
- oracle导出大数量数据到文件sqluldr2
- oracle导出导入(数据泵)dump文件到本地
- Oracle批量导出表数据到CSV文件
- Oracle批量导出表数据到CSV文件
- sqlserver 数据导出到oracle
- Oracle 导出数据到文本文件
- sqlserver导出数据到oracle
- Oracle导出到XML文件
- 数据导出到TXT文件
- 导出资源数据到文件
- Linux下安装nginx
- 第七单元 7.10
- 利用Apache POI读写Microsoft Excel文件
- git 找回代码纪录
- tr1::shared_ptr 代码范例
- oracle 导出数据到文件
- android_launcher的源码详细分析
- Android简化一个界面内的多个Listener
- HackerRank String
- gcc编译器家族
- Android 百分比布局库(percent-support-lib) 解析与扩展
- 异常 java.lang.UnsatisfiedLinkError,so库没有加载
- Largest Number
- 用户需求和产品发展相互促进的关系初探