Какой самый быстрый способ с SQL вставить несколько строк - PullRequest
2 голосов
/ 17 августа 2011

У меня есть массив чисел в памяти, и мне нужно поместить их во временную таблицу, чтобы я мог соединиться с другими таблицами. Список может быть 5 или 250000. Я могу сделать одну вставку за раз, но мне было интересно, был ли какой-нибудь трюк sql, где я мог бы вставить 100 за раз с какой-то вставкой в ​​select .... такого рода вещи, о которых я не думаю.

Массовый загрузчик (в sybase) не является опцией, потому что для него нет реализации java, а также не может быть выбрана оболочка для bcp.

1 Ответ

3 голосов
/ 17 августа 2011

Попробуйте пакетную вставку JDBC. Я никогда не работал с Sybase, но это работает и с MySql, Postgres и Oracle.

Statement stmt = con.createStatement();

stmt.addBatch("INSERT INTO employees VALUES (1000, 'Joe Jones')");
stmt.addBatch("INSERT INTO departments VALUES (260, 'Shoe')");
stmt.addBatch("INSERT INTO emp_dept VALUES (1000, 260)");

// submit a batch of update commands for execution
int[] updateCounts = stmt.executeBatch();

http://download.oracle.com/javase/1.3/docs/guide/jdbc/spec2/jdbc2.1.frame6.html

...