PRB : SQL des requêtes distribuées avec Oracle provoque» n'A pas pu ouvrir table"erreur

Traductions disponibles Traductions disponibles
Numéro d'article: 240340 - Voir les produits auxquels s'applique cet article
Cet article a été archivé. Il est proposé « en l'état » et ne sera plus mis à jour.
Agrandir tout | Réduire tout

Sommaire

Symptômes

Essayez d'utiliser une requête avec un serveur lié Oracle en utilisant le fournisseur OLE DB de MSDAORA, par exemple :
select * from OracleServer..demo.Product
				
peut provoquer une erreur semblable au suivant :
Serveur: Msg 7306, niveau 16, état 2, ligne 1
Impossible d'ouvrir la table ' «Démo».»Produit"' du fournisseur OLE DB 'MSDAORA'. La table spécifiée n'existe pas.
[Le fournisseur OLE/DB a renvoyé ce message : la table spécifiée n'existe pas]
[Le fournisseur OLE/DB a renvoyé ce message : ORA-00942 : table ou vue n'existe pas]

Cause

La requête peut ne pas fonctionne en raison de la casse dans Oracle dans la mesure où SQL Server utilise des noms entre guillemets lorsqu'il est livré à des requêtes à un fournisseur.

Contournement

Utiliser les règles suivantes lorsque vous faites référence à des tables dans un serveur lié Oracle :
  • Si les noms de table et de colonne ont été créés sous Oracle sans identificateurs entre guillemets, vous servir de tous les noms en majuscules. Par exemple, les éléments suivants doivent fonctionner OK:
    select * from OracleServer..DEMO.PRODUCT
    						
  • Si les noms de table et de colonne ont été créés sous Oracle avec des identificateurs entre guillemets, respectez la casse pour toutes les lettres des noms qui a été utilisée lors les noms ont été créés sous Oracle.
Distinction majuscules/minuscules n'est pas un problème lors de l'utilisation de fonction OpenQuery ou OpenRowset. Les éléments suivants doivent fonctionner OK:
SELECT * FROM OPENQUERY(OracleServer, 'select * from PrOdUct')
go
SELECT * FROM OPENRowset('MSDAORA', 'myOracleServer';'demo';'demo', 'select * from PrOdUct' )
go
				

Plus d'informations

Microsoft SQL Server version 7.0 permet d'effectuer des requêtes sur des fournisseurs OLE DB. Pour cela à l'aide des fonctions OpenQuery ou OpenRowset Transact-SQL ou à l'aide d'une requête avec noms en quatre parties incluant un nom de serveur lié. Par exemple :
sp_addlinkedserver 'mylinkedserver', 'product_name', 'myoledbprovider', 'data_source','location', 'provider_string', 'catalog'
SELECT * FROM OPENQUERY(mylinkedserver, 'select * from table1')
				

Étapes à suivre pour reproduire le comportement

  1. Configurer un serveur lié au serveur Oracle :
    EXEC sp_addlinkedserver   'OracleServer',  'Oracle',  'MSDAORA',  'myOracleServer'
    go
    EXEC sp_addlinkedsrvlogin 'OracleServer', 'FALSE', NULL, 'demo', 'demo'
    go
    						
  2. Spécifier une requête de nom de quatre parties :
    SELECT * FROM OracleServer..demo.Product
    						
    qui signale l'erreur décrite dans la section Symptômes.

RÉFÉRENCES

Pour plus d'informations sur SQL Server des requêtes distribuées avec source de données Oracle, voir la rubrique documentation en ligne de SQL 7.0 "OLE DB Provider pour Oracle" et les articles suivants dans la base de connaissances Microsoft :
220915PRB : SQL une requête distribuée avec Oracle besoins Client Oracle

221552PRB : SQL Distributed Query avec affichage de la colonne NUMERIC Oracle d'une erreur

Propriétés

Numéro d'article: 240340 - Dernière mise à jour: dimanche 23 février 2014 - Version: 4.2
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft SQL Server 7.0 Standard
  • Microsoft OLE DB Provider for Oracle Server 1.0
  • Microsoft OLE DB Provider for Oracle Server 1.0
  • Microsoft OLE DB Provider for Oracle Server 1.0
  • Microsoft OLE DB Provider for Oracle Server 1.0
  • Microsoft OLE DB Provider for Oracle Server 1.0
  • Microsoft SQL Server 2000 Standard
Mots-clés : 
kbnosurvey kbarchive kbmt kbdatabase kboracle kbprb KB240340 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 240340
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com