Syntaxe pour migration données via ODBC - SQL/NoSQL - Programmation
Marsh Posté le 12-10-2006 à 17:24:19
Pourquoi la solution des fichiers sql te pose un problème
Suffirait de faire un export puis un import et c'est torché pour une base complète
Marsh Posté le 12-10-2006 à 20:43:49
le problème c'est qu'on est dans un environnement sécurisé et on a pas trop envie que des données voyagent dans des fichiers.
Marsh Posté le 12-10-2006 à 22:33:10
Tes 2 serveurs ils seront pas au même endroit?
Que ça passe par du réseau jusqu'à un serveur ou que le fichier aille jusqu'au serveur ça sera la même chose.
Faudrait plus de détail pour trouver la meilleure solution
M'enfin si y'a obdc des 2 côtés, suffit juste de taper dans une base et de recopier dans l'autre je vois pas vraiment le problème
Marsh Posté le 13-10-2006 à 07:23:50
ben justement mon probleme c'est la syntaxe de la SQL
Genre :
INSERT INTO Server1.DB1.Table (Select * from Server2.DB2.Table)
Marsh Posté le 13-10-2006 à 09:31:29
Tu ne pourra pas avec une unique connexion et une unique requête faire un import/export entre 2 SGBD différents.
Ce qu'il faut faire :
- Ouvrir une connexion ODBC sur la base 1
- Ouvrir une connexion ODBC sur la base 2
- Faire un select sur la base 1
- Stocker les résultats (dans un objet type recordset par ex)
- Faire un insert sur la base 2. Avec comme paramètre les résultats du select.
- Fermer les 2 connexions
Ca se fait rapidement en VB .net voire en VBA si tu as Office qui traîne sur un poste avec accès ODBC pour chaque base.
Par contre, j'espère que l'encodage est le même des deux côtés sinon gare aux surprises
Bonne chance
Marsh Posté le 13-10-2006 à 09:37:01
jeoff a écrit : Tu ne pourra pas avec une unique connexion et une unique requête faire un import/export entre 2 SGBD différents. |
Ca c'est au cas où ni Oracle ni Sybase supportent les DBLink à travers ODBC.
Moi je suis de l'avis de chev6791.
Il faut trouver un moyen (si Sybase ne sait pas faire, je suis certain que Oracle le permet) afin d'ouvrir un DBLink à travers ODBC d'un des serveurs vers l'autre.
Ce sera à la fois rapide et fiable. Sans parler du fait que pour un traîtement un peu plus complexe, il pourra gérer dans une unique transaction les transactions des deux serveurs.
Marsh Posté le 13-10-2006 à 09:47:21
MagicBuzz a écrit : Ca c'est au cas où ni Oracle ni Sybase supportent les DBLink à travers ODBC. |
Voila t'as bien résumé la situation je trouve.
Tu as une idée de la syntaxe pour 'passer le nom du serveur et de la DB' parce que j'ai fait quelques test avec Server1.db1.Table mais ca me génère des erreurs de syntaxe.
Marsh Posté le 13-10-2006 à 09:52:13
aucune idée
sous sql sever la syntaxe est relativement simple, mais c'est la seule que je connaisse.
(t'as qu'à monter un SQL Server, faire des dblink, et faire le transfert de sybase à Oracle en passant par SQL Server --ceci dit, c'est pas complètement stupide, les lots DTS de SQL Server ça peut être bien intéressant --)
Marsh Posté le 13-10-2006 à 13:15:53
Désolé, je ne connaissais pas l'existence des DBLink ...
Faudra que je creuse ça à l'occasion
Marsh Posté le 13-10-2006 à 14:13:48
un peu de doc afin de voir Sybase depuis Oracle (ce qui reviens au même donc)
http://forums.oracle.com/forums/th [...] ID=1323825
(l'exemple traîte de SQL Server mais bon, y'a pas de raison pour que ça ne marche pas pareil pour se connecter à Sybase -d'autant qu'à la base, MS SQL est une vieille version de Sybase qui a évoluée de son côté, donc les deux SGBD doivent être relativement équivalents pour ce qui est de la connectivité)
Marsh Posté le 12-10-2006 à 17:00:42
Voila je voudrais réaliser la migration de données entre une base Sybase et une base Oracle.
Le but serait d'écrire un ensemble de scripts qui font un INSERT dans la base ORACLE sur base d'un SELECT dans la base SYBASE.
Inutile de proposer de passer par des fichiers temporaires (ce sera ma solution de dernier recours, mais je suis pas trop chaud).
A priori ca semble techniquement possible mais je bute sur la syntaxe. Si quelqu'un avait un début de piste ca m'aiderait vraiment.
On dispose d'un ODBC sur chacune des base.
---------------
En informatique, le problème se situe en général entre la chaise et le clavier :whistle