oracle自动生成excel报表(时间为变量,条件含变量)
2011-02-11 11:25
344 查看
目的:unix+oracle下每日生成前一天某统计报表,以一张统计表为例。
----在unix下执行sh脚本----
sqlplus -s username/password <<EOF
@/home/zxin10/task/mazongxiao/sql.sql
/
column spf1 new_value spf1 noprint
select '/home/zxin10/mazongxiao/'||to_char(sysdate,'yyyymmdd')||'_sms_sp_count.xls' spf1 from dual;
set echo off
set feedback off
set heading off
set termout off
set pagesize 0
spool &spf1
@/home/zxin10/task/mazongxiao/unload1.sql
spool off
EOF
------sh中的sql脚本-----------
declare
dd varchar(8);
num int;
begin
select to_char(sysdate-1,'yyyymmdd')into dd from dual;
select count(1) into num from user_tables where table_name='MAZONGXIAO_1';
if num>0 then
execute immediate 'drop table MAZONGXIAO_1';
end if;
execute immediate 'create table MAZONGXIAO_1 as ( select b.cpcnshortname,a.cpid,count(*) cc from v_ssrv_subscription a,scp_basic b
where a.cpid=b.cpid and substr(a.starttime,1,8)= '''||dd||''' and a.subscribechannel !=107 and
a. servicetype=1
and a.cpid not in (18100543,18100548,18100552,18100538,18100540,18100547,18100542,35100005,35100080,35100030,35100001)
group by b.cpcnshortname,a.cpid)';
end;
----unload.sql脚本-----
select 'CPNAME'||' '||'CPID'||' '||'COUNT' FROM DUAL
UNION ALL
select to_char(cpcnshortname)||' '||to_char(cpid)||' '||to_char(cc) from MAZONGXIAO_1;
结果呈现:
----在unix下执行sh脚本----
sqlplus -s username/password <<EOF
@/home/zxin10/task/mazongxiao/sql.sql
/
column spf1 new_value spf1 noprint
select '/home/zxin10/mazongxiao/'||to_char(sysdate,'yyyymmdd')||'_sms_sp_count.xls' spf1 from dual;
set echo off
set feedback off
set heading off
set termout off
set pagesize 0
spool &spf1
@/home/zxin10/task/mazongxiao/unload1.sql
spool off
EOF
------sh中的sql脚本-----------
declare
dd varchar(8);
num int;
begin
select to_char(sysdate-1,'yyyymmdd')into dd from dual;
select count(1) into num from user_tables where table_name='MAZONGXIAO_1';
if num>0 then
execute immediate 'drop table MAZONGXIAO_1';
end if;
execute immediate 'create table MAZONGXIAO_1 as ( select b.cpcnshortname,a.cpid,count(*) cc from v_ssrv_subscription a,scp_basic b
where a.cpid=b.cpid and substr(a.starttime,1,8)= '''||dd||''' and a.subscribechannel !=107 and
a. servicetype=1
and a.cpid not in (18100543,18100548,18100552,18100538,18100540,18100547,18100542,35100005,35100080,35100030,35100001)
group by b.cpcnshortname,a.cpid)';
end;
----unload.sql脚本-----
select 'CPNAME'||' '||'CPID'||' '||'COUNT' FROM DUAL
UNION ALL
select to_char(cpcnshortname)||' '||to_char(cpid)||' '||to_char(cc) from MAZONGXIAO_1;
结果呈现:
相关文章推荐
- Delphi控制Excel自动生成报表
- 用 LotusScript 实现 Excel 报表的自动生成和操作
- Azure云数据库报表自动生成Excel 并自动发送邮件实现
- 用 LotusScript 实现 Excel 报表的自动生成和操作
- Delphi控制Excel自动生成报表
- 索骥馆-OFFICE系列之《北风网Excel高端应用培训:多条件约束报表自动统计系统分析与制作》共4章更新完
- **报表**EXCEL OUT 不能导出GRIDVIEWA自动生成的列 提示索引过界的解决办法
- C#.NET自动生成Excel图形报表
- oracle主键自动增长的实现 Oracle Sequence oracle maxid自动生成--ORA-00001: 违反唯一约束条件 (NAME.SYS_C005547)产生的原因之一(select * from all_cons_columns w
- Oracle中的自动生成guid和系统时间的函数
- Oracle EBS 报表输出字符字段前部"0"被Excel自动去掉问题
- excel报表开发-- 根据datatable个数自动生成新sheet
- 如何让从数据库中查询出符合条件的记录,然后给每个记录自动加上序号,序号是根据符合条件的记录多少在随时变化.而且也会在以查询生成的报表中显示出来.谢谢
- oracle 生成html 报表表格自动换行
- Oracle EBS 报表输出字符字段前部"0"被Excel自动去掉问题
- 使用Jakarta POI EXCEL API自动生成ORACLE数据字典的源代码
- 前2天后台系统需要生成报表,正好抽时间复习了一下之前做过的JAVA生成EXCEL,下面介绍POI 和JXL 生成报表的2种方式。
- 如何用C++将Oracle数据定期生成Excel报表
- Delphi控制Excel自动生成报表
- mybatis+oracle自动生成时间精度问题