... i int; strphoneNo varchar2(11); ...for r in (select 号段 from A) loop for i in 0..9999 loop strphoneNo := r.号段 || to_char(i,'FM0000'); ... end loop; end loop; ...
--建表 create table tb_servnumber( start_servnumber varchar2(11), end_servnumber varchar2(11) );--插入测试数据 insert into tb_servnumber select '13912340000','13912349999' from dual union all select '13998760000','13998769999' from dual; commit;--查询 select a.start_servnumber + b.rn - 1 from tb_servnumber a, (select rownum as rn from dual connect by rownum < 100000) b where a.start_servnumber + b.rn <= a.end_servnumber + 1 ;--结果 A.START_SERVNUMBER+B.RN-1 ------------------------- 13912340000 13998760000 13912340001 13998760001 13912340002 13998760002 13912340003 13998760003 13912340004 13998760004 13912340005 13998760005 13912340006 13998760006 ........................
...
i int;
strphoneNo varchar2(11);
...for r in (select 号段 from A)
loop
for i in 0..9999 loop
strphoneNo := r.号段 || to_char(i,'FM0000');
...
end loop;
end loop;
...
--建表
create table tb_servnumber(
start_servnumber varchar2(11),
end_servnumber varchar2(11)
);--插入测试数据
insert into tb_servnumber
select '13912340000','13912349999' from dual union all
select '13998760000','13998769999' from dual;
commit;--查询
select a.start_servnumber + b.rn - 1
from tb_servnumber a,
(select rownum as rn from dual connect by rownum < 100000) b
where a.start_servnumber + b.rn <= a.end_servnumber + 1
;--结果
A.START_SERVNUMBER+B.RN-1
-------------------------
13912340000
13998760000
13912340001
13998760001
13912340002
13998760002
13912340003
13998760003
13912340004
13998760004
13912340005
13998760005
13912340006
13998760006
........................
加多个:
insert into a
select .................