The easiest way to do this is to use the connect by clause of the select statement to create as many synthetic strings as possible.
Suppose field1 - field3 are of data type varchar2 , and field4 is the data type of numbers, as indicated in the sample data and insert that you specified, then you can write the following insert
Insert into your_table_name(field1, field2, field3, field4) select 'foo' , 'bar' , 'baz' , level from dual connect by level <= 5
Result:
FIELD1 FIELD2 FIELD3 FIELD4 ----------- ----------- ----------- ---------- foo bar baz 1 foo bar baz 2 foo bar baz 3 foo bar baz 4 foo bar baz 5
Edit
If you want to literally see value one , value two , etc. as the values ββof the fiedl4 column, you can modify the above insert as follows:
Insert into your_table_name(field1, field2, field3, field4) select 'foo' , 'bar' , 'baz' , concat('value ', to_char(to_date(level, 'J'), 'jsp')) from dual connect by level <= 5
Result:
FIELD1 FIELD2 FIELD3 FIELD4 ------ ------ ------ ------------- foo bar baz value one foo bar baz value two foo bar baz value three foo bar baz value four foo bar baz value five
If you want to fill field4 an absolutely random generated string literal, you can use the dbms_random package and string() functions:
Insert into your_table_name(field1, field2, field3, field4) select 'foo' , 'bar' , 'baz' , dbms_random.string('l', 7) from dual connect by level <= 5
Result:
FIELD1 FIELD2 FIELD3 FIELD4 ------ ------ ------ -------- foo bar baz dbtcenz foo bar baz njykkdy foo bar baz bcvgabo foo bar baz ghxcavn foo bar baz solhgmm