做到這一點會被佔便宜的最簡單方法select
語句的connect by
子句可根據需要生成儘可能多的合成行。
假設field1
到field3
是varchar2
數據類型和field4
是數字數據類型,因爲數據的採樣和insert
聲明您提供暗示,那麼你可以編寫以下insert
聲明
Insert into your_table_name(field1, field2, field3, field4)
select 'foo'
, 'bar' /* static string literals */
, 'baz'
, level /* starts at 1 and will be increased by 1 with each iteration */
from dual
connect by level <= 5 /* regulator of number of rows */
結果:
FIELD1 FIELD2 FIELD3 FIELD4
----------- ----------- ----------- ----------
foo bar baz 1
foo bar baz 2
foo bar baz 3
foo bar baz 4
foo bar baz 5
編輯:
如果你想真正看到value one
,value two
等作爲fiedl4
列的值,你可以改變上述insert
聲明如下:
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
結果:
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
如果你想用絕對隨機生成的字符串文字填充field4
,你可以使用dbms_random
包和string()
函數:
Insert into your_table_name(field1, field2, field3, field4)
select 'foo'
, 'bar'
, 'baz'
, dbms_random.string('l', 7)
from dual
connect by level <= 5
結果:
FIELD1 FIELD2 FIELD3 FIELD4
------ ------ ------ --------
foo bar baz dbtcenz
foo bar baz njykkdy
foo bar baz bcvgabo
foo bar baz ghxcavn
foo bar baz solhgmm
「這是可行的還是我將不得不分別寫入每個插頁?」 >後者:-) –
field4的值來自哪裏?它是序列號還是別的? – Noel
添加到Ramblin的人的問題,如果你知道field4的所有值,你可以提供它們作爲一個「表值函數」,改變你的'insert'使用'select'而不是'values'?並加入這些函數的值... – DrCopyPaste