2009-09-16 5 views
0

데이터베이스 이주 작업을 수행 중입니다. MSSQL 데이터베이스를 MySql 데이터베이스에 복사해야합니다. 작은 SQL 유틸리티를 사용하여 MSSQL에서 MySql 데이터베이스로 테이블 구조를 복사 할 수있었습니다. 이제는 MSSQL에서 MySql으로 모든 데이터를 복사해야합니다. 나는 자바에서 결과 집합을 사용하여 테이블에서 모든 데이터를 얻으려고 시도했지만 데이터의 작은 부분 만 가져올 수있었습니다. 거기에 모든 데이터를 얻을 수있는 다른 솔루션을 테이블에서 결과 또는 mysql DB에 동일한 데이터를 삽입 할 수있는 다른 유사한 구조를 얻을 수 있습니다. 테이블에는 25,000 개 이상의 레코드가 있습니다.Java 용 WorkAround ResultSet 제한

+1

JDBC에는 이러한 제한이 없습니다. – skaffman

답변

1

JDBC 결과 집합은 원칙적으로 큰 쿼리 결과의 항목을 반복 할 수 있어야합니다.

그러나 자바를 통해가는 것이 가장 효율적인 접근 방법이 아닐 수도 있습니다. 파일로 대량 내보내기 및 대량 가져 오기가 최선의 방법 일 수 있습니다. MS가 내보내기를 수행 할 수있는 유틸리티가 bcp 인 것 같습니다.

http://en.wikipedia.org/wiki/Extract,_transform,_load

당신은 할 수 없을 것입니다 이유가 없다 : 여기 ETL의 좋은 개요가있다 -

+0

s/may/is/g 일 수 있습니다. –

+0

Thanx djna, mssql에서 파일로 대량 내보내기 ?? u는 약간 정교 할 수있다. 미리 감사드립니다. – Richie

+0

일부 데이터베이스 공급 업체는 데이터를 내보내고 가져올 수있는 기능을 제공합니다. 그것은 MS가 나타납니다. 그 내보내기가 MYSQL로 얼마나 쉽게 임포트 될 수 있는지는 모르겠지만, 일단 당신이 가지고 놀 수있는 파일을 가지고 있다면, 나는 필요한 변환을 아주 쉽게 기대할 것입니다. – djna

0

당신이 설명처럼 데이터베이스 마이그레이션을 달성하는 가장 좋은 방법은 사용하고 ETL 도구입니다 JDBC로이 작업을 수행하십시오. 따라서 자신 만의 롤링 작업을 설정하면 '데이터의 일부만 가져올 수 있습니다'라고 자세히 설명하십시오.

  • 실행중인 쿼리는 무엇입니까?
  • 예외가 발생하고 있습니까?
  • JDBC 드라이버를 사용하여 MS-SQL에 연결하고 있습니까?
+0

안녕 Nick, 감사합니다. 이상적으로는 결과 집합이 데이터베이스의 모든 데이터를 가져와야한다는 것을 알고 있지만 그 데이터는 나를 위해 작동하지 않습니다. * 내가 실행하려고 쿼리 "SELECT * FROM"되는 쿼리 *를 실행하는 동안 내가 어떤 예외를 받고 있지 않다 * 는 JDBC 드라이버 마이크로 소프트의 JDBC SQL Server 드라이버 – Richie

+0

하이 리치합니다 - MS JDBC 드라이버 ISN은 그게 좋은 것입니다 (일부는 의도적으로 말할 수도 있음). TDS 드라이버 (http://jtds.sourceforge.net/index.html)를 사용해보십시오. –