SQL> select 'L' || lpad(level - 1, 8, '0') val
2 from dual
3 connect by level <= 11;
VAL
---------
L00000000
L00000001
L00000002
L00000003
L00000004
L00000005
L00000006
L00000007
L00000008
L00000009
L00000010
11 rows selected.
SQL>
Для элементов INSERT и Apex:
SQL> create table test (val varchar2(20));
Table created.
SQL> insert into test (val)
2 with subs as
3 (select to_number(regexp_substr('&P1_LAST' , '\d+$')) clast,
4 to_number(regexp_substr('&P1_FIRST', '\d+$')) cfirst
5 from dual
6 )
7 select 'L' || lpad(cfirst + level - 1, 8, '0') val
8 from subs
9 connect by level <= clast - cfirst + 1;
Enter value for p1_last: L4819225
Enter value for p1_first: L4819222
4 rows created.
SQL> /
Enter value for p1_last: L0000010
Enter value for p1_first: L0000000
11 rows created.
Результат:
SQL> select * From test order by val;
VAL
--------------------
L00000000
L00000001
L00000002
L00000003
L00000004
L00000005
L00000006
L00000007
L00000008
L00000009
L00000010
L04819222
L04819223
L04819224
L04819225
15 rows selected.
SQL>
Запрос, который вы будете использовать в Apex, равен
insert into test (val)
with subs as
(select to_number(regexp_substr(:P1_LAST , '\d+$')) clast,
to_number(regexp_substr(:P1_FIRST, '\d+$')) cfirst
from dual
)
select 'L' || lpad(cfirst + level - 1, 8, '0') val
from subs
connect by level <= clast - cfirst + 1;