
2、在查询的结果集上(注意不要选中任何一个行或者单元格)右键--【Copy to Excel】-->【Copy as xls/xlsx】导出到97-2003格式的.xls或者2007之后的xlsx文件.
3、如果不想导出查询的全部数据,可以在左侧选中需要导出的行,然后步奏同上。
4、点击导出后,系统自动打开导出的excel文件内容,这里面包括数据以及查询这些数据的sql脚本。
5、点击“SQL Statement”可以查看数据库脚本。
6、下面就是 *** 作excel文件了。点击【文件】--【另存为】保存excel文件
7、选择保存路径,输入文件名称。
注意事项:导出到excel的时候,行记录数也会被自动导出。如果不需要可以在excel中将此列删除即可。
*** 作步骤如下:准备数据:在excel中构造出需要的数据2.将excel中的数据另存为文本文件(有制表符分隔的)3.将新保存到文本文件中的数据导入到pl*sql中在pl*sql中选择tools-->textimporter,在出现的窗口中选择"DatafromTextfile",然后再选择"Opendatafile",在d出的文件选择框中选中保存有数据的文本文件,此时将会看到datafromtextfile中显示将要导入的数据4.在configuration中进行如下配置注:如果不将"Nameinheader"勾选上会导致字段名也当做记录被导入到数据库中,从而导致数据错误5.点击datatooracle,选择将要导入数据的表,并在fields中将文本中的字段与表中的字段进行关联6.点击import按钮进行导入7.查看导入的数据无法直接保存到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文件中,会把这些字符串合在一个单元格中。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)