【发布时间】:2013-11-21 09:17:23
【问题描述】:
这是我的序列表。它有超过 1000 条记录。它有开始号和结束号。但数字之间不存在。 我需要在另一个临时表中添加所有数字 [开始/之间和结束数字] 记录 按数字编号 如下所示
存在表
select concat(CARD_BULK_CODE,start_serial) startserial,concat(CARD_BULK_CODE,end_serial) endserial
from TSR_BULK_CARD_SERIALS
--------------------------
STARTSERIAL ENDSERIAL |
--------------------------
18126944 18126946 |
18141101 18141122 |
15150722 15150729 |
19069303 19069317 |
--------------------------
必填表
------------ SERIAL_NO | ------------ 18126944 18126945 18141101 18141102 …… ------------似乎它需要 pl-sql 来实现这一点。 请帮我解决这个问题
我在双重的帮助下尝试了以下查询。 但它很慢而且还没有得到结果:-) 运行超过 1 小时
select distinct concat(t.CARD_BULK_CODE,t.START_SERIAL)+level-1 SERIAL
from TSR_BULK_CARD_SERIALS t, dual
connect by level-1<=(concat(t.CARD_BULK_CODE,t.END_SERIAL ))-concat(t.CARD_BULK_CODE,t.START_SERIAL)
order by 1
编辑:
亲爱的 Alen 和 Dba。我尝试了你的,但发生了以下错误。
DECLARE
l_st NUMBER;
l_en NUMBER;
BEGIN
FOR rec IN (select concat(card_bulk_code, start_serial) startserial,concat(card_bulk_code, end_serial) endserial from tsr_bulk_card_serials)
LOOP
l_st := rec.startserial;
l_en := rec.endserial;
FOR rec1 IN l_st..l_en
LOOP
INSERT INTO temp(serial_no) values(rec1);
END LOOP;
END LOOP;
COMMIT;
END;
Error at line 1
ORA-01426: numeric overflow
ORA-06512: at line 9
Script Terminated on line 1.
【问题讨论】:
-
发布临时表结构解决数字溢出错误
-
亲爱的 psaraj12,它带有 serial_no 列 |型号
-
亲爱的朋友 Nicholas,我从那个帖子中得到了双 sql。但它不符合我的要求。