2016-09-01 3 views

答えて

0

バルクインサートはありません。あるテーブルから別のテーブルに "temp_table tからテーブル(列)select t.columnに挿入する"などのレコードを挿入することができます。

+0

**は**バルクインサートです。しかしあなたの考えは良いです。テーブルが同じデータベースにある場合。データベースが接続されている場合は、このためにdb_linkを使用できます。それ以外の場合は、データをエクスポートして再インポートする必要があります。 –

+0

私は希望の答えを得ました。 10000挿入ステートメントとBEGINを上とENDに追加するだけです。/やっと。ありがとうございます。 –

0

TOADがcsvファイルとしてデータを保存してから、sqlloaderを使用してデータをdbにロードすると、単一行の挿入よりもはるかに高速になります。

+0

彼はToadを使ってcsvファイルをデータベースに読み込むこともできます。 –

+0

CSVは私の問題を解決するつもりはありません。表2の例2の列があります。年とto_do。同じデータを同じテーブルに挿入する必要がありますが、変更された年です。 2004年は5000行、2005年は5000行です。text/sqlファイルなどでは、2004年から2005年に変更して検索して置き換えます。私はすべて挿入クエリが必要です。 –

+1

私は希望の答えを得ました。 10000挿入ステートメントとBEGINを上とENDに追加するだけです。/やっと。ありがとうNeerajとFlorin –

1

他の人にあなたのコメントに基づいて回答あなたは不必要なエクスポート/編集/インポートをたくさん行っていると思います。データベースがあなたのために働くすべてのものをやりましょう!

これは、私のテストテーブルでは、すべてのshuckingと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'); 
関連する問題