Je réalise un travail de migration de base de données. Je dois copier une base de données dans MSSQL à la base de données MySQL. Il était possible de créer un petit utilitaire java pour copier la structure de table de MSSQL vers la base de données MySql. Maintenant, je dois copier toutes les données de MSSQL vers MySQL. J'ai essayé using resultset dans Java pour obtenir toutes les données d'une table mais alors il pourrait seulement chercher une petite partie des données. Y at-il une autre solution pour obtenir toutes les données de la table au resultset ou à une autre structure similaire que je pourrais éventuellement utiliser, pour insérer les mêmes données dans mysql Db. Il y a plus de 25 000 000 enregistrements pour une table.Toute limite WorkAround For Java ResultSet
Répondre
Un jeu de résultats JDBC devrait, en principe, vous permettre d'itérer l'intégralité d'un grand résultat de requête. Cependant, passer par Java n'est peut-être pas l'approche la plus efficace. L'exportation en bloc vers un fichier et l'importation en bloc peuvent être la solution. Il semble que MS a un utilitaire bcp qui peut faire l'exportation.
s/peut être/est/g. –
Thanx djna, Export en bloc vers un fichier à partir de mssql ?? Pouvez-vous élaborer un peu. Merci encore d'avance :) – Richie
Certains fournisseurs de bases de données ont des options pour exporter et importer des données. Il semble que MS le fasse. Je ne sais pas avec quelle facilité cette exportation peut être importée dans MYSQL, mais une fois que vous avez un fichier à jouer, je m'attends à ce que les transformations nécessaires soient assez faciles. – djna
La meilleure façon de parvenir à une migration de base de données comme vous décrivez est d'utiliser et ETL Tool - il y a une bonne vue d'ensemble ETL ici:
http://en.wikipedia.org/wiki/Extract,_transform,_load
Il n'y a aucune raison pour laquelle vous ne seriez pas en mesure de faire avec JDBC et donc si vous définissez sur vos propres modèles sur s'il vous plaît élaborer « ne pouvait aller chercher une petite partie des données »:
- ce qui est la requête que vous exécutez?
- recevez-vous une exception?
- quel pilote JDBC utilisez-vous pour vous connecter à MS-SQL?
Bonjour Nick, Nous vous remercions de votre réponse. Je sais que le résultat idéal devrait ramasser toutes les données de la base de données, mais cela ne fonctionne pas pour moi. * La requête que je suis en train de courir est « SELECT * FROM
Salut Richie - le pilote MS JDBC ISN 't ce bien (certains pourraient dire intentionnellement). Essayez d'utiliser le pilote TDS - http://jtds.sourceforge.net/index.html –
Il n'y a pas une telle limitation dans JDBC. – skaffman