동일한 구조를 가진 두 개의 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 덤프를 사용할 수 없으면 ETL 도구를 사용할 수 있습니까? 이것은 다음으로 쉬운 접근 방법이기 때문입니다. –
죄로 추악합니다. 리소스를 닫거나 트랜잭션을 처리하거나 PreparedStatement를 올바르게 사용하지 마십시오. 나는 링크 또는 덤프를 사용합니다. – duffymo
@duffymo 내 리소스를 닫습니다! 그것은 코드의 맨 위에있는 부분입니다. 이것은 테스트 용 초안 코드 일뿐입니다. 나는 이것을 실제 환경에서 사용하지 않을 것이다! – Tohid