这个存储过程主要是想实现输入两个参数:
开始时间、结束时间(精确到日)
那么经过存储过程的运算,能最终得到一个从开始时间
到结束时间之间所有日期的结果集出来。
比如,
输入 2008-08-08 , 2008-08-12
那么,
结果应该是
DATE
-------
2008-08-09
2008-08-10
2008-08-11望高手指点迷津!给些思路。
开始时间、结束时间(精确到日)
那么经过存储过程的运算,能最终得到一个从开始时间
到结束时间之间所有日期的结果集出来。
比如,
输入 2008-08-08 , 2008-08-12
那么,
结果应该是
DATE
-------
2008-08-09
2008-08-10
2008-08-11望高手指点迷津!给些思路。
解决方案 »
- 关于oracle的问题
- 求救:oracle10g 导入dmp文件问题
- 计算整数二进制位
- 异常详细信息: System.Data.OleDb.OleDbException: 未找到 Oracle 客户端和网络组件。这些组件是由 Oracle 公司提供的,是 Oracle 8i 版 (或更高) 客户软件安装的一部分。
- error:ora-12560:TNS:协议适配器错误
- oracle9i透明网关技术
- oracle的PROCEDURE写好后如何测试??
- 我的机器改名后oracle起不来,请教各位大侠怎么解决?
- ORACLE8I DOS 中使用的命令有哪些?
- 在线等待:存储过程执行过程中报错:ORA-06502: PL/SQL: 数字或值错误,字符串缓冲区太小;UP有分!
- 如何对Oracle大字段进行like查找
- JSP连接ORACLE双机有时出现异常
with t as (
select to_date('2008-08-08') d from dual
union
select to_date('2008-08-12') from dual
)
select t0.d
from (select d start_d ,lead(d,1,d+1) over (order by d) end_d from t) t,
(select r+min_d d
from (select min(d) min_d from t),
(select rownum-1 r
from all_objects
where rownum <=(select (max(trunc(d))-min(trunc(d))+1) from t)) ) t0
where t0.d>t.start_d and t0.d <t.end_d
order by 1;
2 connect by rownum<=to_date('20080315','yyyymmdd')-to_date('20080312','yyyymmdd')
3 /
TO_DATE('20080312','YYYYMMDD')
------------------------------
2008/3/13
2008/3/14
2008/3/15
SQL> 僅供參考!
你试试在sqlplus下执行。
很早就看过这个语句,但一直不清楚connect by为什么会产生这种效果?