2016-09-01 3 views
0

Когда я экспортирую данные в инструкцию insert, он генерирует (abc.sql) огромный оператор вставки, который я должен запускать отдельно. Невозможно выполнить один за другим 10000 вставку. Итак, как экспортировать инструкцию Bulk insert выбранных данных с помощью жабы, которую я могу выполнить одним щелчком мыши или несколькими изменениями.Export Bulk insert statement toad

ответ

0

Нет объемной вставки. Вы можете вставлять записи из одной таблицы в другую, например «insert into table (column)) выбрать t.column из temp_table t;»

+0

Там ** есть ** массовая вставка. Но твоя идея хорошая. Если таблицы находятся в одной базе данных. Если базы данных подключены, для этого может использоваться db_link. В противном случае это невозможно сделать, не экспортируя данные и не реимпортируя их. –

+0

Я получил свой желаемый ответ. 10000 и просто добавьте BEGIN сверху и END;/в конце концов. Спасибо всем. –

0

Имейте TOAD, чтобы сохранить данные в виде CSV-файла, а затем использовать sqlloader для загрузки данных в db, будет намного быстрее, чем однострочные вставки.

+0

он также может использовать Toad для загрузки csv-файла в базу данных. –

+0

CSV не решит мою проблему. пример 2 в таблице. год и to_do. Я должен вставить те же данные в ту же таблицу, но с измененным годом. 5000 строк за 2004 год и еще 5000 строк за 2005 год. В текстовом/sql-файле или в любом другом месте я буду менять только 2004-2005 год путем поиска и замены. За всем мне нужен запрос на вставку. –

+1

Я получил свой желаемый ответ. 10000 и просто добавьте BEGIN сверху и END;/в конце концов. Спасибо Neeraj и Florin –

1

Основываясь на ваших комментариях к другим ответам, я считаю, что вы делаете много ненужного экспорта/редактирования/импорта. Пусть база данных сделает все, что сработает для вас!

Это работает на моем тестовом столе без всякого извержения и джива. Для всех строк, где год составляет 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');