乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > 如何使用SQL语句将<em>Oracle</em>数据库表导出为TXT文件

如何使用SQL语句将<em>Oracle</em>数据库表导出为TXT文件

作者:乔山办公网日期:

返回目录:excel表格制作


您好,我来为您解答:
  in sqlplus:

  set colsep ,;

  change the column separator to ,

  希望我的回答对你有帮助。

可用spool的方式将oracle的数据导出成文本。

1、登录sqlplus到指定数据库。

2、在某一路径,如c盘data目录下,创建脚本,文件名为:导出脚本.sql 内容如下:

set colsep '|' --设置|为列分隔符 

set trimspool on 
set linesize 120 
set pagesize 2000          
set newpage 1 
set heading off            
set term off 
set num 18                  
set feedback off            
spool c:\data\导出.txt
select * from emp; 
spool off

3、执行命令:

@C:\data\导出脚本.sql

4、执行结束后,c盘data目录下会生成导出.txt的文件,里边内容就是导出表中的内容。


job自动调用存储过程。
存储过程里是生成excel的sql

无法直接保存到excel中,但是可以保存到csv文件,同样是excel的格式,方法如下:
譬如要把文件生成在d盘下的test目录下:
1,在d盘根目录下新建test目录
2,sqlplus以system用sysdba登录
3,create or replace directory TMP as ’d:\test’;
4,grant read on directory TMP to user;
5,alter system set utl_file_dir='d:\test' scope=spfile;
然后建立存储过程,表是随便建了一个,最后的文件名按要求需要按照当前日期的前一天生成,所以后边文件名的地方write_file_name处就按照要求来了
create or replace PROCEDURE SP_OUTPUT
(
on_flag OUT NUMBER,
out_reason OUT VARCHAR2)
is
v_code number;
v_text varchar2(255);

file_handle utl_file.file_type;
Write_content VARCHAR2(1024);
Write_file_name VARCHAR2(50);
v_aaa varchar2(5);
v_bbb varchar2(5);

cursor cur_sp_out
is
select aaa,bbb
from aaa;
begin
open cur_sp_out;
loop
fetch cur_sp_out into v_aaa,v_bbb;
exit when cur_sp_out%notfound;
write_file_name := to_char(SYSDATE,'YYYYMMDD')||'.xls';
file_handle := utl_file.fopen('TMP',write_file_name,'a');
write_content := v_aaa||' '||v_bbb;
--write file
IF utl_file.is_open(file_handle) THEN
utl_file.put_line(file_handle,write_content);
END IF;
--close file
utl_file.fclose(file_handle);
end loop;
close cur_sp_out;

v_code := 0;
v_text := '完成';
exception
when others then
on_flag := SQLCODE;
out_reason := SQLERRM;
begin
IF utl_file.is_open(file_handle) THEN
utl_file.fclose(file_handle);
end IF;
end;
rollback;
end;

这样基本就完成了,但是建立完毕后需要重启数据库,否则文件写不进指定的目录下

需要注意的是: write_content := v_aaa||' '||v_bbb; 这个位置

v_aaa|| 和v_bbb中间引号的地方是TAB符,否则输出来的XLS文件中,会把这e69da5e887aae799bee5baa6361些字符串合在一个单元格中。

相关阅读

  • oracle中查询的结果怎么导出excel

  • 乔山办公网excel表格制作
  • 操作步骤如下:准抄备数据:在excel中构造出需要的数据2.将excel中的数据另存为文本文件(有制表符分隔的)3.将新保存到文本文件中的数据导入到pl*sql中在pl*sql中选择tools-->textimporter,在出现
关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网