Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server
MS SQL-Server Forum Microsoft SQL-Server. Avant de poster -> FAQ SQL-Server, Tutoriels SQL-Server
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/02/2011, 14h16   #1
Invité régulier
 
Inscription : novembre 2010
Messages : 33
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 33
Points : 6
Points : 6
Par défaut SQL Server 2000 : dblink ou DTS

Bonjour,
Le contexte est le suivant :
- 1 base de données SQL Server
- 1 base de données Oracle sur un autre serveur
Une table dans la base SqlServer dont les tuples doivent se retrouver dans une table Oracle.
J'ai créé un dts qui à l'aide d'un select remplit la table oracle (connexion en odbc).
Les temps de réponses sont admissibles (183'000 enregistrements en 6 minutes et quelques).
Seulement, je dois pouvoir parvenir au traitement plus compliqué qui est de :
1. Vider la table Oracle
2. Remplir la table Oracle avec la table sql Server
3. Un job sql Server exécutera quotidiennement le DTS
Le point 2 est ok mais comment vider une table d'une autre sgbd dans un dts Sql Server.
Est-il déconseillé d'utiliser les dts pour effectuer ce genre de chose ?
Est-il préférable d'utiliser un dbLink ?
Merci de vos lumière
Jask
jaskoula1979 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2011, 15h38   #2
Invité régulier
 
Inscription : novembre 2010
Messages : 33
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 33
Points : 6
Points : 6
Je me réponds.
Concernant le dts j'ai procédé ainsi :
4 "objets" :
1 connexion à la base SQL Server,
1 connexion à la base Oracle,
1 tâche d'exécution de requêtes SQL (Delete FROM tb_Oracle),
1 tâche de transformation de données (requête d'insertion dans Oracle).
En cas de réussite de la tâche d'exécution de requêtes SQL (Delete..) le flux se poursuit jusqu'à l'insertion.
Tout à l'air de fonctionner.
Par contre, si vous avez de l'expérience dans ce type d'architecture merci de me faire part de vos conseils.
Jask
jaskoula1979 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/02/2011, 23h10   #3
Membre éprouvé
 
Homme Hamid MIRA
Ingénieur développement logiciels
Inscription : septembre 2003
Messages : 177
Détails du profil
Informations personnelles :
Nom : Homme Hamid MIRA
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : septembre 2003
Messages : 177
Points : 413
Points : 413
Sous SQL server 2000, j'avoue que je ne sais pas (?).
Mais, sous SQL Server 2008, créer un Serveur lié dans une instance SQL Server référençant une base oracle peut s'avérer très pratique
En effet, tu aurais pu ensuite utiliser dans SSIS, des Tâche de type T-SQL contenant des instructions comme indiqué ci-dessous :

Code :
1
2
3
4
5
INSERT OPENQUERY (LinkServerOracle, 
  'SELECT champ1, champ2, champ3 FROM  schemaoracle.tableoracle')
SELECT champA, champB, champC 
FROM schemasqlserver.tablesqlserver 
WHERE
A+
hmira est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h17.


 
 
 
 
Partenaires

Hébergement Web