日期:2014-05-17  浏览次数:20981 次

oracle 连续日期插入
现在有一个表,里边有类型A,时间b,
有两个时间的值
请问怎么一次插入
这两个时间值范围内的数据
如果需要用到PL/SQL 如何去写?
例如 单条插入为
INSERT INTO TAB 
VALUES ('类型1','2012-08-18')


------解决方案--------------------
SQL code

--换成你的起始,终止日期就可以了
SQL> create table tab(
  2  t varchar2(10),
  3  d varchar2(10)
  4  );

表已创建。

SQL> declare
  2      v_d1 date := to_date('2012-01-01','yyyy-mm-dd');
  3      v_d2 date := to_date('2012-01-03','yyyy-mm-dd');
  4  begin
  5      insert into tab
  6      select '类型'||rownum,to_char(v_d1+rownum-1,'yyyy-mm-dd') from dual
  7      connect by rownum<v_d2-v_d1+2;
  8      commit;
  9  end;
 10  /

PL/SQL 过程已成功完成。

SQL> select * from tab;

T                    D                                                          
-------------------- --------------------                                       
类型1                2012-01-01                                                 
类型2                2012-01-02                                                 
类型3                2012-01-03