CORRECTIF : Colonne numérique dans Oracle entraîne l'erreur 7354

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: 243027
Cet article a été archivé. Il est proposé « en l'état » et ne sera plus mis à jour.
BOGUE : 36489 (SQLBUG_70)
BOGUE : 18722 (SQLBUG_70)
BOGUE : 47131 (SQLBUG_70)
Symptômes
Tenter d'utiliser un serveur Oracle lié à l'aide du fournisseur Microsoft OLE DB pour Oracle (MSDAORA) que les requêtes une table avec une colonne numérique peut provoquer une erreur semblable au suivant :
Serveur: Msg 7354, niveau 16, état 1, ligne 1 fournisseur OLEDB 'MSDAORA' fourni une métadonnée non valide pour la colonne 'columnname'. Le type de données n'est pas prise en charge.
La requête peut également échouer si la colonne numérique n'est pas dans la liste de sélection.
Cause
La colonne avec le type de données numérique n'a aucune longueur n'est spécifié (aucune précision, sans valeur par défaut, autorise les valeurs NULL). Le type de données numérique sans une précision et une échelle est représenté dans Oracle par une longueur variable numérique avec précision jusqu'à 255.
Contournement
Pour plus d'informations sur les solutions de contournement possibles, consultez l'article suivant dans la base de connaissances Microsoft :
221552PRB : SQL Distributed Query avec affichage de la colonne NUMERIC Oracle d'une erreur
Statut
Microsoft a confirmé l'existence de ce problème dans SQL Server 7.0. Ce problème a été corrigé dans le Service Pack 2 US pour Microsoft SQL Server 7.0. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
254561INF: Comment faire pour obtenir le Service Pack 2 pour Microsoft SQL Server 7.0 et Microsoft Data Engine (MSDE) 1.0
Pour plus d'informations, contactez votre support technique.
Plus d'informations
Même si SQL Server 7.0 Service Pack 2 (SP2) contient un correctif de la cause du problème décrit, l'installation de SP2 n'installe pas une version mise à jour de la procédure stockée de catalogue sp_columns_ex. Par conséquent, un appel à sp_columns_ex peut renvoyer toujours l'erreur suivante :
Serveur: Msg 515, niveau 16, état 2, procédure sp_columns_ex, ligne 133
Impossible d'insérer la valeur NULL dans la colonne 'DATA_TYPE', table 'tempdb.dbo.#tmp_columns_XX'; la colonne n'autorise pas les valeurs NULL. INSERT échoue. L'instruction a été interrompue.
Pour corriger ce problème, exécutez le script Instcat.SQL à partir de SP2. Consultez la rubrique «How pour mise à niveau du catalogue procédures stockées» dans la documentation en ligne de SQL Server 7.0 de pour obtenir des instructions sur la façon d'exécuter ce script.

Un type numérique Oracle est désormais mappé à nvarchar (384) si la précision est trop grande pour un numérique type SQL Server.
numéro type de données oledb

Avertissement : Cet article a été traduit automatiquement.

Propriétés

ID d'article : 243027 - Dernière mise à jour : 12/05/2015 16:07:02 - Révision : 2.0

Microsoft SQL Server 7.0 Standard

  • kbnosurvey kbarchive kbmt kbbug kbfix KB243027 KbMtfr
Commentaires