Question

I am doing a database migration work. I have to copy a database in MSSQL to MySql database. It was possible to come up with a small java utility to copy table stucture from MSSQL to MySql Database. Now i have to copy all data from MSSQL to MySql. I tried using resultset in java to obtain all data from a table but then it could only fetch a small part of data. Is there any alternate solution to get all data from table to resultset or to some other similar structure which i could possibly use, to insert the same data into mysql Db. There are more than 25,00,000 records for a table.

Was it helpful?

Solution

A JDBC result set should in principle allow you to iterate the entirity of a large query result.

However going via Java may not be the most efficient approach. Bulk export to a file and bulk import may be the way to go. It appears that MS has a bcp utility that may do the export.

OTHER TIPS

The best way to achieve a database migration like you describe is to use and ETL Tool - there's a good overview of ETL here:

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

There's no reason why you wouldn't be able to do this with JDBC and so if you are set on rolling your own please elaborate on 'could only fetch a small part of data':

  • what is the query you are running?
  • are you getting an exception?
  • which JDBC driver are you using to connect to MS-SQL?
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top