Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Ecrire des données SQL Server dans Oracle

3 réponses
Avatar
toto
Bonjour,

Nous recherchons un how-to ou un retour d'expérience sur une écriture depuis
SQL Server vers Oracle suivant le schéma suivant :

Trigger (contient le INSERT) > Vue SQL Server > Serveur lié vers Oracle via
MSDAORA > Serveur Oracle (sous Windows).

Utilisation de MS-DTC ? MTS ?


Le trigger est le suivant :
CREATE TRIGGER tr_INSERT ON [dbo].[IMAGES]
FOR INSERT
AS

INSERT INTO ***.***.BASEIMAGES_DATEMODIF (Co_EAn, dt_Modif)
SELECT e.cdvte, getdate()
from Collections..produit p
inner join Collections..ean e on p.cdintprd = e.cdintprd
inner join inserted i on i.codeprod = p.cdintprd

L'erreur est la suivante : L'operation ne peut pas etre effectuée car le
fournisseur MSDAORA n'a pas reussi à démarrer de transaction distribuée.

Les 2 serveurs sont sous Win2K et MSDTC est démarré.
Les droits d'ecriture sont ok. (une requete d'ecriture dans la vue Oracle
fonctionne)


Merci pour votre aide.

3 réponses

Avatar
Med Bouchenafa
Essaie de simplifier le probleme en faisant une requete similaire en dehors
du trigger

--
Bien cordialement
Med Bouchenafa

"toto" wrote in message
news:
Bonjour,

Nous recherchons un how-to ou un retour d'expérience sur une écriture
depuis
SQL Server vers Oracle suivant le schéma suivant :

Trigger (contient le INSERT) > Vue SQL Server > Serveur lié vers Oracle
via
MSDAORA > Serveur Oracle (sous Windows).

Utilisation de MS-DTC ? MTS ?


Le trigger est le suivant :
CREATE TRIGGER tr_INSERT ON [dbo].[IMAGES]
FOR INSERT
AS

INSERT INTO ***.***.BASEIMAGES_DATEMODIF (Co_EAn, dt_Modif)
SELECT e.cdvte, getdate()
from Collections..produit p
inner join Collections..ean e on p.cdintprd = e.cdintprd
inner join inserted i on i.codeprod = p.cdintprd

L'erreur est la suivante : L'operation ne peut pas etre effectuée car le
fournisseur MSDAORA n'a pas reussi à démarrer de transaction distribuée.

Les 2 serveurs sont sous Win2K et MSDTC est démarré.
Les droits d'ecriture sont ok. (une requete d'ecriture dans la vue Oracle
fonctionne)


Merci pour votre aide.




Avatar
Vuillermet Jacques
Merci Med.
Nous avons contourné le problème en utilisant un procédure stockée et un
job.
(je travaille avec "toto")

Mais cela ne nous satisfait guère : où trouver des informations techniques
exhaustives et sérieuses sur le sujet ?

(par "sérieuse" je veux dire des articles qui ne se contentent pas de dire
"vous cliquer et en théorie cela fonctionne" ; j'ai l'impression que les
auteurs de pas mal d'articles recopient d'autres articles mais n'ont pas
vraiment mis en oeuvre un échange SQL Server / Oracle en transactionnel.
Les seules informations qu'on trouve sont autour de la définition d'un
serveur lié ou sur des concepts de hauts niveaux sur la notion de commit à 2
phases etc. ; mais pas de documentation technique expliquant les mécanismes
mis en oeuvre en transactionnel entre ces 2 SGBD).

Merci encore.

Tu seras présent à Amsterdam ?

Jacques.


"Med Bouchenafa" a écrit dans le message de news:

Essaie de simplifier le probleme en faisant une requete similaire en


dehors
du trigger

--
Bien cordialement
Med Bouchenafa

"toto" wrote in message
news:
> Bonjour,
>
> Nous recherchons un how-to ou un retour d'expérience sur une écriture
> depuis
> SQL Server vers Oracle suivant le schéma suivant :
>
> Trigger (contient le INSERT) > Vue SQL Server > Serveur lié vers Oracle
> via
> MSDAORA > Serveur Oracle (sous Windows).
>
> Utilisation de MS-DTC ? MTS ?
>
>
> Le trigger est le suivant :
> CREATE TRIGGER tr_INSERT ON [dbo].[IMAGES]
> FOR INSERT
> AS
>
> INSERT INTO ***.***.BASEIMAGES_DATEMODIF (Co_EAn, dt_Modif)
> SELECT e.cdvte, getdate()
> from Collections..produit p
> inner join Collections..ean e on p.cdintprd = e.cdintprd
> inner join inserted i on i.codeprod = p.cdintprd
>
> L'erreur est la suivante : L'operation ne peut pas etre effectuée car le
> fournisseur MSDAORA n'a pas reussi à démarrer de transaction distribuée.
>
> Les 2 serveurs sont sous Win2K et MSDTC est démarré.
> Les droits d'ecriture sont ok. (une requete d'ecriture dans la vue


Oracle
> fonctionne)
>
>
> Merci pour votre aide.
>
>




Avatar
Med Bouchenafa
La documentation concerne peut-etre plus MSDTC que SQL Server
Pour MSDTC, SQL Server et Oracle ne sont que des ressources qu'il gere de la
même manière pourvu qu'il soit "XA compliant"
C'est cette "XA-compliance" qui doit faire toute la différence
Dans le cas d'Oracle, jette un coup d'oeil à cet article
http://support.microsoft.com/kb/193893

--
Bien cordialement
Med Bouchenafa

Ps
Jacques, non, je ne serai pas Amsterdam
je suis pris sur autre chose dans une autre capital européenne
je serai de retour probablement à la prochaine rentrée


"Vuillermet Jacques" a écrit dans le message de news:
uAZj24%
Merci Med.
Nous avons contourné le problème en utilisant un procédure stockée et un
job.
(je travaille avec "toto")

Mais cela ne nous satisfait guère : où trouver des informations techniques
exhaustives et sérieuses sur le sujet ?

(par "sérieuse" je veux dire des articles qui ne se contentent pas de dire
"vous cliquer et en théorie cela fonctionne" ; j'ai l'impression que les
auteurs de pas mal d'articles recopient d'autres articles mais n'ont pas
vraiment mis en oeuvre un échange SQL Server / Oracle en transactionnel.
Les seules informations qu'on trouve sont autour de la définition d'un
serveur lié ou sur des concepts de hauts niveaux sur la notion de commit à
2
phases etc. ; mais pas de documentation technique expliquant les
mécanismes
mis en oeuvre en transactionnel entre ces 2 SGBD).

Merci encore.

Tu seras présent à Amsterdam ?

Jacques.


"Med Bouchenafa" a écrit dans le message de news:

Essaie de simplifier le probleme en faisant une requete similaire en


dehors
du trigger

--
Bien cordialement
Med Bouchenafa

"toto" wrote in message
news:
> Bonjour,
>
> Nous recherchons un how-to ou un retour d'expérience sur une écriture
> depuis
> SQL Server vers Oracle suivant le schéma suivant :
>
> Trigger (contient le INSERT) > Vue SQL Server > Serveur lié vers Oracle
> via
> MSDAORA > Serveur Oracle (sous Windows).
>
> Utilisation de MS-DTC ? MTS ?
>
>
> Le trigger est le suivant :
> CREATE TRIGGER tr_INSERT ON [dbo].[IMAGES]
> FOR INSERT
> AS
>
> INSERT INTO ***.***.BASEIMAGES_DATEMODIF (Co_EAn, dt_Modif)
> SELECT e.cdvte, getdate()
> from Collections..produit p
> inner join Collections..ean e on p.cdintprd = e.cdintprd
> inner join inserted i on i.codeprod = p.cdintprd
>
> L'erreur est la suivante : L'operation ne peut pas etre effectuée car
> le
> fournisseur MSDAORA n'a pas reussi à démarrer de transaction
> distribuée.
>
> Les 2 serveurs sont sous Win2K et MSDTC est démarré.
> Les droits d'ecriture sont ok. (une requete d'ecriture dans la vue


Oracle
> fonctionne)
>
>
> Merci pour votre aide.
>
>