oracle html文档,生成年度日历(Oracle SQLPLUS版)的html文档(zt)

此博客介绍了如何使用Oracle SQL*Plus创建定制年度日历的HTML文档,包括设置参数、日期计算和生成月历表格的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

生成年度日历(Oracle SQLPLUS版)的html文档(zt)

/************************************************************

生成年度日历(Oracle SQLPLUS版)的html文档

Ref: http://www.itpub.net/469543.html

*************************************************************/

column next_year new_v next_year

set termout off

select to_char(add_months(sysdate,12),'yyyy') next_year from dual;

set termout on

accept year char prompt '请输入日历年份,默认为明年:' default &next_year;

set linesize 1000

set term off verify off feedback off pagesize 999

SET TRIMSPOOL ON

set markup html on entmap ON spool on preformat off

spool e:calendar&year..html

set heading off

select lpad(' ',30)||&year||'年度日历(Oracle SQLPLUS版)' title from dual

/

set heading on

--set markup html on entmap on spool on preformat off

alter session set nls_language=american;

select case

when (new_yweek = min(new_yweek) over(partition by mon order by new_yweek)) then

mon_name

else

null

end as month, new_yweek as yweek, row_number() over(partition by mon order by new_yweek) as mweek, sum(decode(wday,

'1',

mday,

null)) as sun, sum(decode(wday, '2', mday, null)) as mon, sum(decode(wday, '3', mday, null)) as tue, sum(decode(wday,

'4',

mday,

null)) as wed, sum(decode(wday, '5', mday, null)) as thu, sum(decode(wday, '6', mday, null)) as fri, sum(decode(wday,

'7',

mday,

null)) as sat

from (select dayofyear as everyday, to_char(dayofyear, 'mm') as mon, to_char(dayofyear, 'Month') as mon_name, to_char(dayofyear,

'w') as mweek, to_char(dayofyear, 'ww') as yweek, case

when (to_char(to_date(&year || '0101', 'yyyymmdd'), 'd') > '1') and

(to_char(dayofyear, 'd') < to_char(to_date(&year || '0101', 'yyyymmdd'), 'd')) then

to_char(to_char(dayofyear, 'ww') + 1, 'fm00')

else

to_char(dayofyear, 'ww')

end as new_yweek, to_char(dayofyear, 'd') as wday, to_char(dayofyear, 'dd') as mday

from (select to_date(&year || '0101', 'yyyymmdd') + level - 1 as dayofyear

from dual

connect by level <= to_char(to_date(&year || '1231', 'yyyymmdd'), 'ddd')))

group by mon, mon_name, new_yweek

/

SPOOL OFF

set markup html off entmap off preformat on

set term on verify on feedback on pagesize 14

set linesize 80

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值