вот мой серийный table.it имеет более 1000 records.its с начальным номером и номером end.but между числами не существует. мне нужно добавить все количество [START/между & конечными номерами] записями в другом темпе таблица номера по номеру , как показано нижеКак получить число в диапазоне номеров PL-Sql.?
EXIST ТАБЛИЦЕ
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 | ---------------------------
REQUIRED TABLE
----------- SERIAL_NO | ----------- 18126944 18126945 18141101 18141102 .... -----------
Кажется, что это нужно pl-sql для реализации этого. , пожалуйста, помогите мне разобраться в этом выпуске
Я попытался с нижеследующим запросом с помощью dual. но очень медленно и пока не получили результаты :-) работает более чем 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
EDIT:
Дорогой Ален & Dba.i пытались с них и ниже ошибка.
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.
Возможный дубликат [Oracle получить номера с диапазоном] (http://stackoverflow.com/questions/20045045/oracle-get-numbers-with-range) –
опубликовать структуру таблицы temp для разрешения ошибки переполнения номера – psaraj12
дорогой psaraj12, \t его с serial_no column | тип номер –