Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Import/Export Oracle Discussion :

de Oracle vers SQL server


Sujet :

Import/Export Oracle

  1. #1
    Membre à l'essai
    de Oracle vers SQL server
    Bonjour,
    J'ai une table créée sous oracle et contient des lignes sur un serveur.
    J'ai une autre table crées sous SQL server et contient des lignes dans autre serveur.
    Les deux tables peuvent n'ont pas le même nom avec des noms des colonnes différents.

    Mon problème comment interfacer entre SQL server et Oracle c'est à chaque insertion ou modification ou suppression sur la première table alors j'aurai la même ligne insérée (ou modifiée ou supprimé) dans la deuxième table.


    Merci

    Interfaçage entre sql server et oracle

  2. #2
    Rédacteur

    Si c'est de SQL Server vers oracle, vous pouvez créer un serveur lié dans votre instance de SQL Server et utiliser un déclencheur qui répercutera les modifications.
    il faut cependant pour cela activer le commit à deux phases en passant par MS DTC, pour coordonner les transactions, et élever le niveau transactionnel des opérations en mode de transaction distribuée :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    BEGIN DISTRIBUTED TRANSACTION;

    A lire sur ces sujets :
    1) créer un serveur lié Oracle
    https://blog.developpez.com/zinzinet...es_distribuees
    2) activer MSDTC
    https://blog.developpez.com/elsuket/...oordinateur_de
    3) effectuer une transaction distribuée
    https://docs.microsoft.com/fr-fr/sql...l-server-ver15

    A +
    Cette signature n'a pas pu être affichée car elle comporte des erreurs.

  3. #3
    Membre à l'essai
    Merci beaucoup @SQLpro

    Pardon, pourriez-vous me simplifier encore les étapes à suivre sur mon exemple ?
    J'ai une table 'Personne' (sur SQL Server) avec les colonnes : code, nom, adresse
    J’insère la ligne suivante : 1, abc, adr1
    Cette table existe sur un serveur Serv1

    J'ai une autre table 'Candidat' (sur SQL Server) avec les colonnes : code, nom, adresse
    Cette table existe sur un serveur Serv2

    Je voulais à chaque fois j'insère dans la table 'Personne' alors cette insertion sera automatique dans table 'Candidat'.

    Comment faire cette insertion automatique ?

    Merci d'avance.

  4. #4
    Membre à l'essai
    Bonjour,

    J'ai ce message d'erreur et merci d'avance pour vos réponses :

    TITLE: Microsoft SQL Server Management Studio
    ------------------------------

    The linked server has been created but failed a connection test. Do you want to keep the linked server?

    ------------------------------
    ADDITIONAL INFORMATION:

    An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)

    ------------------------------

    Impossible de créer une instance du fournisseur OLE DB "OraOLEDB.Oracle" du serveur lié "LINORACLE". (Microsoft SQL Server, Error: 7302)

    For help, click: http://go.microsoft.com/fwlink?ProdN...p;LinkId=20476

    ------------------------------
    BUTTONS:

    &Yes
    &No
    ------------------------------

  5. #5
    Membre à l'essai
    Bonjour,

    Mon objectif est de trouver une solution ou écrire un script pu développer un middleware permettant de :

    - automatiser l'insertion : chaque fois que j'insère dans une table sous SQL Server alors cette ligne sera automatique insérée dans autre table correspondante sous oracle.



    - collecter des données des sources différentes (Oracle, SQl server) et les ajouter à d'autres données pour les réutiliser dans une autre tâche.

    Merci.

  6. #6
    Rédacteur/Modérateur

    Travaillez avec un ETL (gratuit) de genre Talend : https://fr.talend.com/
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  7. #7
    Rédacteur

    Le mieux est d'utiliser SSIS (SQL Server Integration Services) qui est inclus dans votre licence SQL Server, et surtout plus puissant et plus rapide. La version gratuite de Talend étant bridée !

    A +
    Cette signature n'a pas pu être affichée car elle comporte des erreurs.

  8. #8
    Membre à l'essai
    Bonjour,

    J'ai eu ce type d'erreur :

    Erreur du serveur dans l'application '/'.
    Impossible de charger le fichier ou l'assembly 'Oracle.DataAccess' ou une de ses dépendances. Tentative de chargement d’un programme de format incorrect.
    Description : Une exception non gérée s'est produite au moment de l'exécution de la requête Web actuelle. Contrôlez la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code.

    Détails de l'exception: System.BadImageFormatException: Impossible de charger le fichier ou l'assembly 'Oracle.DataAccess' ou une de ses dépendances. Tentative de chargement d’un programme de format incorrect.

    Erreur source:

    Une exception non gérée s'est produite lors de l'exécution de la requête Web actuelle. Les informations relatives à l'origine et l'emplacement de l'exception peuvent être identifiées en utilisant la trace de la pile d'exception ci-dessous.

    Suivi du chargement de l'assembly: Les informations suivantes peuvent permettre de déterminer la raison pour laquelle l'assembly 'Oracle.DataAccess' n'a pas pu être chargé.


    AVT : la journalisation de liaison d'assembly est désactivée.
    Pour activer la journalisation des échecs de liaison d'assembly, attribuez la valeur 1 à la valeur de Registre [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD).
    Remarque : une certaine perte de performance est associée à l'enregistrement dans le journal des échecs de liaison d'assembly.
    Pour désactiver cette fonctionnalité, supprimez la valeur de Registre [HKLM\Software\Microsoft\Fusion!EnableLog].

    Trace de la pile:


    [BadImageFormatException: Impossible de charger le fichier ou l'assembly 'Oracle.DataAccess' ou une de ses dépendances. Tentative de chargement d’un programme de format incorrect.]
    System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +0
    System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +37
    System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +159
    System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean forIntrospection) +80
    System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +22
    System.Reflection.Assembly.Load(String assemblyString) +29
    System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +39

    [ConfigurationErrorsException: Impossible de charger le fichier ou l'assembly 'Oracle.DataAccess' ou une de ses dépendances. Tentative de chargement d’un programme de format incorrect.]
    System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +777
    System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory() +229
    System.Web.Configuration.CompilationSection.LoadAssembly(AssemblyInfo ai) +140
    System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig) +176
    System.Web.Compilation.BuildManager.GetPreStartInitMethodsFromReferencedAssemblies() +99
    System.Web.Compilation.BuildManager.CallPreStartInitMethods(String preStartInitListPath, Boolean& isRefAssemblyLoaded) +310
    System.Web.Compilation.BuildManager.ExecutePreAppStart() +165
    System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, Exception appDomainCreationException) +590

    [HttpException (0x80004005): Impossible de charger le fichier ou l'assembly 'Oracle.DataAccess' ou une de ses dépendances. Tentative de chargement d’un programme de format incorrect.]
    System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +10082160
    System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +99
    System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +263

    Informations sur la version : Version Microsoft .NET Framework :4.0.30319; Version ASP.NET :4.8.4110.0

###raw>template_hook.ano_emploi###