2016-09-01 40 views
0

當我導出數據爲插入語句時它生成(abc.sql)巨大的插入語句,我必須單獨運行。它不可能一個一個地運行10000個插入語句。那麼如何通過蟾蜍導出所選數據的批量插入語句,我可以通過單擊或少量修改來運行。導出大容量插入語句由蟾蜍

回答

0

沒有批量插入。您可以將一個表中的記錄插入另一個表中,例如「insert into table(column)select temp.table from temp_table t;」

+0

有**是**批量插入。但你的想法很好。如果這些表在同一個數據庫中。如果連接數據庫,可以使用db_link來實現。否則,無法導出數據並重新導入。 –

+0

我得到了我想要的答案。 10000插入語句,只需在頂部和END上添加BEGIN;/最後。謝謝大家。 –

0

有TOAD將數據保存爲csv文件,然後使用sqlloader將數據加載到數據庫中,將比單行插入快得多。

+0

他也可以使用Toad將csv文件加載到數據庫中。 –

+0

CSV不會解決我的問題。表I中的示例2列有。年和to_do。我應該將相同的數據插入同一張表,但改變年份。 2004年爲5000行,2005年爲5000行。在文本/ sql文件或任何我只會改變2004年至2005年查找和替換。總之我想要一個插入查詢。 –

+1

我得到了我想要的答案。 10000插入語句,只需在頂部和END上添加BEGIN;/最後。謝謝Neeraj和Florin –

1

根據你對其他人的意見,我相信你正在做大量不必要的導出/編輯/導入。讓數據庫爲你工作!

這對我的測試表起作用,沒有所有的扣和jiving。對於那些年份是2015年,它將插入(有效複印件)相同的數據,但在一年內增長了1所有行:

insert into x_test 
(select col_a, col_b, col_c, col_d, l_date + 365 from x_test -- 2016 
where to_char(l_date, 'YYYY') = '2015'); 

同時與工會的加入更年:

insert into x_test 
(select col_a, col_b, col_c, col_d, l_date + 365 from x_test -- 2016 
where to_char(l_date, 'YYYY') = '2015') 
union 
(select col_a, col_b, col_c, col_d, l_date + 730 from x_test -- 2017 
where to_char(l_date, 'YYYY') = '2015');