OVH Cloud OVH Cloud

Requête + serveur lié

3 réponses
Avatar
Céline BALLEREAU
Bonjour =E0 tous,

Je suis bloqu=E9e avec la r=E9cup=E9ration de donn=E9es provenant=20
d'un serveur li=E9.

J'ai r=E9alis=E9e la requ=EAte suivante :

"Select * from OPENQUERY(TEST1,'select * from=20
SIBJET.ITMMASTER')"

Elle fonctionne bien si la table ITMMASTER est vide. Par=20
contre si elle contient des donn=E9es, j'obtient le message=20
suivant :=20

"Serveur : Msg 8114, Niveau 16, =C9tat 8, Ligne 1
Erreur de conversion du type de donn=E9es DBTYPE_DBTIMESTAMP=20
en datetime.", il s'agit d'un lien avec une base de=20
donn=E9es Oracle pr=E9sente sur un autre serveur.

Pour r=E9cup=E9rer ces donn=E9es, j'ai =E9galement test=E9 la=20
requ=EAte sous cette forme :=20

"select * from TEST1.X130.SIBJET.ITMMASTER" et j'obtient=20
le message d'erreur suivant :

"Serveur : Msg 7312, Niveau 16, =C9tat 1, Ligne 1
Utilisation non valide du sch=E9ma ou du catalogue par le=20
fournisseur OLE DB 'MSDAORA'. Un nom en quatre parties a=20
=E9t=E9 donn=E9 mais le fournisseur ne met =E0 pas disposition les=20
interfaces requises pour utiliser le catalogue ou le=20
sch=E9ma.
Trace de l'erreur OLE DB [Non-interface error]."

Merci d'avance pour vos conseils,

C=E9line.

3 réponses

Avatar
news.tiscali.fr
a premiere vue, il tente de convertire le champs de type DBTYPE_DBTIMESTAMP
de oracle en type datatime sql.
Une solution est de faire un convert manuel du genre

Select * from OPENQUERY(TEST1,'select convert(varchar,champendbtimestam),
autrechamps1,autrechamps2,.... from SIBJET.ITMMASTER')"

LPO


"Céline BALLEREAU" a écrit dans le message de news:
1fa8b01c45853$498cf180$
Bonjour à tous,

Je suis bloquée avec la récupération de données provenant
d'un serveur lié.

J'ai réalisée la requête suivante :

"Select * from OPENQUERY(TEST1,'select * from
SIBJET.ITMMASTER')"

Elle fonctionne bien si la table ITMMASTER est vide. Par
contre si elle contient des données, j'obtient le message
suivant :

"Serveur : Msg 8114, Niveau 16, État 8, Ligne 1
Erreur de conversion du type de données DBTYPE_DBTIMESTAMP
en datetime.", il s'agit d'un lien avec une base de
données Oracle présente sur un autre serveur.

Pour récupérer ces données, j'ai également testé la
requête sous cette forme :

"select * from TEST1.X130.SIBJET.ITMMASTER" et j'obtient
le message d'erreur suivant :

"Serveur : Msg 7312, Niveau 16, État 1, Ligne 1
Utilisation non valide du schéma ou du catalogue par le
fournisseur OLE DB 'MSDAORA'. Un nom en quatre parties a
été donné mais le fournisseur ne met à pas disposition les
interfaces requises pour utiliser le catalogue ou le
schéma.
Trace de l'erreur OLE DB [Non-interface error]."

Merci d'avance pour vos conseils,

Céline.
Avatar
Oxiane
pour les connexions à un serveur lié Oracle, il ne faut pas indiquer un nom
en 4 parties (pas de notion de catalogue).

Avec ton serveur Oracle lié sous le nom TEST1, puis tu peux faire un

select * from TEST1..NomDuSchéma.NomDeLaTable

(il y a 2 points entre TEST1et NomDuSchéma)

--
Cordialement

Oxiane
----------------------------------------------------------
Omnia vanitas



"Céline BALLEREAU" a écrit dans le message de
news:1fa8b01c45853$498cf180$
Bonjour à tous,

Je suis bloquée avec la récupération de données provenant
d'un serveur lié.

J'ai réalisée la requête suivante :

"Select * from OPENQUERY(TEST1,'select * from
SIBJET.ITMMASTER')"

Elle fonctionne bien si la table ITMMASTER est vide. Par
contre si elle contient des données, j'obtient le message
suivant :

"Serveur : Msg 8114, Niveau 16, État 8, Ligne 1
Erreur de conversion du type de données DBTYPE_DBTIMESTAMP
en datetime.", il s'agit d'un lien avec une base de
données Oracle présente sur un autre serveur.

Pour récupérer ces données, j'ai également testé la
requête sous cette forme :

"select * from TEST1.X130.SIBJET.ITMMASTER" et j'obtient
le message d'erreur suivant :

"Serveur : Msg 7312, Niveau 16, État 1, Ligne 1
Utilisation non valide du schéma ou du catalogue par le
fournisseur OLE DB 'MSDAORA'. Un nom en quatre parties a
été donné mais le fournisseur ne met à pas disposition les
interfaces requises pour utiliser le catalogue ou le
schéma.
Trace de l'erreur OLE DB [Non-interface error]."

Merci d'avance pour vos conseils,

Céline.
Avatar
Oxiane
pour les connexions à un serveur lié Oracle, il ne faut pas indiquer un nom
en 4 parties (pas de notion de catalogue).

Avec ton serveur Oracle lié sous le nom TEST1, puis tu peux faire un

select * from TEST1..NomDuSchéma.NomDeLaTable

(il y a 2 points entre TEST1et NomDuSchéma)

--
Cordialement

Oxiane
----------------------------------------------------------
Omnia vanitas



"Céline BALLEREAU" a écrit dans le message de
news:1fa8b01c45853$498cf180$
Bonjour à tous,

Je suis bloquée avec la récupération de données provenant
d'un serveur lié.

J'ai réalisée la requête suivante :

"Select * from OPENQUERY(TEST1,'select * from
SIBJET.ITMMASTER')"

Elle fonctionne bien si la table ITMMASTER est vide. Par
contre si elle contient des données, j'obtient le message
suivant :

"Serveur : Msg 8114, Niveau 16, État 8, Ligne 1
Erreur de conversion du type de données DBTYPE_DBTIMESTAMP
en datetime.", il s'agit d'un lien avec une base de
données Oracle présente sur un autre serveur.

Pour récupérer ces données, j'ai également testé la
requête sous cette forme :

"select * from TEST1.X130.SIBJET.ITMMASTER" et j'obtient
le message d'erreur suivant :

"Serveur : Msg 7312, Niveau 16, État 1, Ligne 1
Utilisation non valide du schéma ou du catalogue par le
fournisseur OLE DB 'MSDAORA'. Un nom en quatre parties a
été donné mais le fournisseur ne met à pas disposition les
interfaces requises pour utiliser le catalogue ou le
schéma.
Trace de l'erreur OLE DB [Non-interface error]."

Merci d'avance pour vos conseils,

Céline.