I have to insert one billion record in oracle database table. I have 2 column . One column is a seqence number which follows till 1,000,000,000 Second column is a varchar2 field ... and it is in the format of abc~122~373~7777777~5367 . That is first column must contain 3 random characters followed by '~' then 3 random number followed by '~' then again 3 random number followed by '~' then followed by 7 random number followed by '~' and finally 4 random number followed by '~'. And I need all records to be unique.
Asked
Active
Viewed 772 times
-1
-
1OK, so what is the question? Read https://docs.oracle.com/database/121/ARPLS/d_random.htm#ARPLS040 – OldProgrammer May 30 '17 at 17:17
1 Answers
1
create or replace function fn RETURN VARCHAR2 IS
label varchar2(24) := '';
BEGIN
-- abc~122~373~7777777~5367
select
chr(97 + floor(dbms_random.value*26)) || chr(97 + floor(dbms_random.value*26)) || chr(97 + floor(dbms_random.value*26))|| '~'
|| rpad(floor(dbms_random.value*123),3, '9') || '~'
|| rpad(floor(dbms_random.value*123),3, '8') || '~'
|| rpad(floor(dbms_random.value*1234567),7, '6') || '~'
|| rpad(floor(dbms_random.value*1234),4, '4') into label
from dual ;
RETURN label;
END;
and you could create a table by invoking it n
times as below.
create table testtable as select fn from dual connect by level <= 1000000000;

Slkrasnodar
- 824
- 6
- 10