怎么在oracle下写一个脚本,然后导出表数据为EXCEL格式文件?
无法直接保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文件中,会把这些字符串合在一个单元格中。
如何把oracle运行出来的报表转换成EXCEL格式
关个看你oralce运行出来报表什么形式存储的,如果你是java对象可以用POI来生成excel格式。
建议这个地方用专业报表工具,去数据库中做展现,然后利用他们封装好功能导出excel就可以。这个方面做的最好就是FineReport报表工具
如何将oracle数据库表字段导成excel表格
这个你只要用ADO连结到oracle并获取记录集,然后根据你用程语言打开EXCEL对象,然后操作EXCEL对象的工作可以了.以VB为例:
1、在工程中引用Microsoft Excel类型库:
从"工程"菜单中选择"引用"栏;选择Microsoft Excel 9.0 Object Library(EXCEL2000)
,然后选择"确定"。表示在工程中要引用EXCEL类型库。
2、在通用对象的声明过程中定义EXCEL对象:
Dim xlApp As Excel.Application
Dim xlBook As Excel.WorkBook
Dim xlSheet As Excel.Worksheet
3、在程序中操作EXCEL表常用命令:
Set xlApp = CreateObject("Excel.Application") '创建EXCEL对象
Set xlBook = xlApp.Workbooks.Open("文件名") '打开已经存在的EXCEL工件簿文件
xlApp.Visible = True '设置EXCEL对象可见(或不可见)
Set xlSheet = xlBook.Worksheets("表名") '设置活动工作表
xlApp.Cells(row, col) =值 '给单元格(row,col)赋值,这里值可以是字段和记的值
XLApp.Cells(i, 1).Interior.ColorIndex = i'设计单元格颜色i=1--56
xlSheet.PrintOut '打印工作表
xlBook.Close (True) '关闭工作簿
xlApp.Quit '结束EXCEL对象
Set xlApp = Nothing '释放xlApp对象
oracle可以直接读取excel吗?
可以的如下:
1.oracle数据库有一student表,现有一个excel表:student.xlsx,需导入oracle数据库student表中。
student表的拥有者是system,system为test。
2.打开需导入的excel表格,单击office按钮,选择另存为--其他格式。
选择保存路径(置于D:\),保存类型CSV(逗号分隔)(*.csv),设置文件名为student.csv,单击保存 。
3.新建input.ctl文件(置于D:\),内容为:
load data
infile 'd:\student.csv'
append into table student fields terminated by ','
trailing nullcols(id,name,sex,age)
说明:infile后面参数为欲导入的excel表(已转换成csv格式)路径及名称;append在表后追加;table后面跟oracle数据库中的表名称; terminated by ','表示字段分隔符;(id,name,sex,age)表示字段名称列表。
4.同时按Windows徽标键和R键,打开运行,输入cmd,打开命令提示符,输入命令:
sqlldr userid=system/test@netservicename control=d:\input.ctl
说明:system/test,为oracle数据student的所有者及其密码;
@ netservicename为网络服务名;
control是input.ctl文件名称及路径。
5.进入oracle数据库,查询student表,excel已导入成功。
如何将oracle的查询结果导出到EXCEL
方法/步骤
首开PL/SQL,然后在SQL Window窗口中,查询需要导出据。
在查询的结果集上右键--Copy to Excel-->Copy as xls/xlsx导出到97-2003格式的.xls或者2007之后的xlsx文件.
下图为导出后自动打开的导出文件,这样就成功的导出了
c#.net语言怎么实现把oracle中的一个表转为EXCEL文件(.xls)?
教你个偷懒的方法.
读出数据,直接生成html格式的.生成文件的时候后缀名改成.xls就好了.
excel是可以直接打开html的.只是导出查看的话,这个解决方案应该是最好的了
设置简单的样式也容易,
oracle如何将数据的数据按照sql导出成excel格式或者pdf格式啊?
使用plsqldev或toad,导出格式为csv格式,再转存为xls格式就行了