Variable BLOB dans une replication de BDD

Fermé
bene86 - 9 oct. 2007 à 14:53
 hotrod - 10 oct. 2007 à 11:03
Bonjour,

Dans le cadre de mon entreprise, je dois effectuer une réplication de BDD, d'une base SQL server à une base mysql.
J'ai créé une chaine ODBC qui va faire le lien jusqu'à ma base mysql. Et dans sql server(SQL server Enterprise manager) j'ai créé un nouveau lot DTS. J'ai bien mis ma base SQL Server de départ et ma chaine ODBC. J'ai 4 étapes(4flèches qui va de ma base de départ vers la chaine ODBC), car je veux répliquer 4 tables de ma base SQL Server. Mon problème est que lorsque j'execute ce lot, 2 taches sur 4 ne fonctionnent pas. Pour ces deux taches qui ne marchent pas, j'ai le message d'erreur suivant:

"Le nombre de lignesqui ont échoué excède le maximum spécifié.
Ni l'insertion ni la mise a jour basée sur une requête des valeurs BLOB ne sont prises en charges".

Les types des valeurs de ma bases sql server sont les suivants: 'tyint', 'numeric', 'varchar', 'datetime', 'bit', 'integer' et 'long varchar'. Après une petite recherche, j'ai cru comprendre que les valeurs BLOB devaient être celles de type long, donc ici 'long varchar'. Est ce bien cela?

J'ai donc essayé d'executer le lot en enlevant la réplication des variables de type 'long varchar' et cela a marché.
Ce que je ne comprend pas, c'est que les taches qui ont fonctionnées dès le début comprenaient elles aussi des variables de type 'long varchar'. Sauriez vous pourquoi cela aurait pu marcher pour elle et pa spour les autres?

De plus, ce qui m'embète beaucoup c'est que dans l'une de mes tables, j'ai absolument besoin dans ma nouvelle base des 2 variables de type 'long varchar'. Comment est ce que je pourrais faire pour que la réplication se fasse pour ces 2 variables?

Merci d'avance de votre aide. N'hésitez pas à me poser des questions si je n'ai pas été assez claire ou pas assez précise.
De plus, il y a des valeurs de type 'long varchar' que j'ai enlevé de la réplication pour que cela puisse fonctionner mais que j'ai absolument besoin dans ma nouvelle base. Comment je pourrais faire que la réplication marche?



Mon problème est assez urgent parce que j'en ai besoin pour mon boulo pour mon entreprise.
Si je n'ai pas été assez précise ou claire, n'hésitez pas à me poser des questions.

Merci d'avance pour vos réponse.

Bénédicte

1 réponse

Je ne connais pas SQL server et donc pas le type long varchar mais ce doit être un problème de taille de champ.
Le type varchar en MySQL n'admet que 255 car. Pour des données plus importante tu dois utiliser les champs de type TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB pour les données brutes ou les champs TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT pour les données alpha.
Les différents nom correspondent aux différentes tailles de données possibles.

Vas faire un tour du coté du site https://dev.mysql.com/
Sur ce site outre la documentation tu trouveras en téléchargements les GUI Tools de MySQL qui comporte un assitant de migration prenant charge les migrations SQL server vers MySQL, peut être qu'il fait tout ça très bien
0