У нас есть две базы данных Oracle, которые имеют одинаковую структуру. Нам нужно скопировать содержимое одной таблицы из одной базы данных в другую. Я пишу программу JAVA для решения этой задачи. Поскольку структура таблицы может измениться в будущем, программа должна быть способна сама адаптироваться. Я попытался следующий код:Как скопировать таблицу из одной базы данных в другую с помощью JDBC?
try {
ResultSet rsConfig = getConfigRows(srcDatabase); // this method returns SELECT * FROM TEST_TABLE
ResultSetMetaData rsmd = rsConfig.getMetaData();
int colCount = rsmd.getColumnCount();
String columns = "";
String values = "";
for (int j = 1; j <= colCount; j++) {
columns += rsmd.getColumnName(j);
if (j <= colCount)
columns += ",";
values += "?";
if (j <= colCount)
values += ",";
}
String sql = "INSERT INTO TEST_TABLE(" + columns + ") VALUES("
+ values + ")";
PreparedStatement psDest = destDatabase.prepareStatement(sql);
while (rsConfig.next()) {
for (int j = 1; j <= colCount; j++) {
psDest.setObject(j, (Object) rsConfig.getObject(rsmd
.getColumnName(j)));
}
psDest.executeUpdate();
}
там что-то случилось с моим кодом? Какие-либо предложения ? Я должен отметить, что по какой-то причине мне не разрешено использовать внешние инструменты!
Если вам не разрешено использовать Oracle Dumps, разрешено ли вам использовать инструменты ETL? Потому что это будет следующий самый простой подход. –
Уродливый как грех. Вы не закрываете ресурсы, не обрабатываете транзакции или не используете PreparedStatement правильно. Я бы использовал ссылку или свалку. – duffymo
@duffymo Я действительно закрываю свои ресурсы! это только верхняя часть кода. Это всего лишь код кода для тестирования. Я не буду использовать это в реальной среде! – Tohid