Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server
MS SQL-Server Forum Microsoft SQL-Server. Avant de poster -> FAQ SQL-Server, Tutoriels SQL-Server
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/03/2011, 18h49   #1
Membre du Club
 
Avatar de Moine
 
Inscription : mars 2006
Messages : 172
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 172
Points : 44
Points : 44
Par défaut SQL Server 05 invalid data for type numeric

Bonsoir à tous,
j'ai une procédure stockée dans laquelle j'ai fait un openquery() qui utilise un lien sur une base oracle, tout marchait bien jusqu'au jour où je reçois le message suivant:'invalid data for type numeric'. après investigation j'ai remarqué que c'est une colonne qui posait problème, j'ai effectué un
Code :
 to_char(colonne) AS colonne
et un et bien d'autres choses préconisées sur le net mais anyway!

merci de m'aider à trouver où se trouve le problème.
__________________
Vive les bug!
Ils font découvrir beaucoup de choses.
Moine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/03/2011, 19h22   #2
Membre Expert
 
Homme
Développeur java, access, sql server
Inscription : octobre 2005
Messages : 851
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Développeur java, access, sql server
Secteur : Industrie

Informations forums :
Inscription : octobre 2005
Messages : 851
Points : 1 302
Points : 1 302
Tu peux identifier le type de la colonne Oracle ?
Est-ce pour faire une importation dans SQL Server ?
__________________
D'abord qu'il marche. Ensuite qu'il soit rapide. Enfin qu'il soit agréable à utiliser.
First, make it work. Then, make it fast. Finally, make it user-friendly.
Erst, mach', dass es funktioniert. Dann, mach', dass es schnell geht, Zum Schluss mach' es benutzerfreundlich.
Népomucène est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/03/2011, 19h53   #3
Membre du Club
 
Avatar de Moine
 
Inscription : mars 2006
Messages : 172
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 172
Points : 44
Points : 44
Par défaut SQL Server 05 invalid data for type numeric

justement c'est pour une importation.

sous oracle la colonne est de type numeric(10)

sous sql server elle est de type float. j'ai essayé avec real,int,varchar même mais rien.
__________________
Vive les bug!
Ils font découvrir beaucoup de choses.
Moine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/03/2011, 23h16   #4
Membre Expert
 
Homme
Développeur java, access, sql server
Inscription : octobre 2005
Messages : 851
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Développeur java, access, sql server
Secteur : Industrie

Informations forums :
Inscription : octobre 2005
Messages : 851
Points : 1 302
Points : 1 302
On part à la pêche ...

C'est peut-être une valeur nulle que SQL Server n'arrive pas à convertir.
as-tu essayé :
Code :
ISNULL(colonne, 0) AS colonne
__________________
D'abord qu'il marche. Ensuite qu'il soit rapide. Enfin qu'il soit agréable à utiliser.
First, make it work. Then, make it fast. Finally, make it user-friendly.
Erst, mach', dass es funktioniert. Dann, mach', dass es schnell geht, Zum Schluss mach' es benutzerfreundlich.
Népomucène est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2011, 08h42   #5
Membre Expert
 
Avatar de iberserk
 
Homme Bruno IGNACE
Architecte de base de données
Inscription : novembre 2004
Messages : 1 299
Détails du profil
Informations personnelles :
Nom : Homme Bruno IGNACE
Âge : 30
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Architecte de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2004
Messages : 1 299
Points : 2 282
Points : 2 282
Envoyer un message via MSN à iberserk
Citation:
invalid data for type numeric
L'erreur est remontée par ORACLE et non SQL SERVER à priori... changer le type côté SQL SERVER ne changera rien.

Quelle est la requête executée côté ORACLE? postez là l'erreur doit venir de là.
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir.
iberserk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2011, 18h01   #6
Membre du Club
 
Avatar de Moine
 
Inscription : mars 2006
Messages : 172
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 172
Points : 44
Points : 44
Par défaut SQL Server 05 invalid data for type numeric

j'ai copié et coller la requête dans Toad, l'execution a passé mais dès que je la met dans le openquery(), ça plante avec la même erreur.

voici en gros à quoi la requête ressemble:

Code :
1
2
 
INSERT INTO ma_table SELECT * FROM openquery(link_con,'select * from ma_table')
__________________
Vive les bug!
Ils font découvrir beaucoup de choses.
Moine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2011, 18h15   #7
Membre Expert
 
Homme
Développeur java, access, sql server
Inscription : octobre 2005
Messages : 851
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Développeur java, access, sql server
Secteur : Industrie

Informations forums :
Inscription : octobre 2005
Messages : 851
Points : 1 302
Points : 1 302
as-tu essayé uniquement
Code :
SELECT * FROM openquery(link_con,'select * from ma_table')
pour éliminer le problème éventuel de structure de la table SQL Server qui reçoit les données
__________________
D'abord qu'il marche. Ensuite qu'il soit rapide. Enfin qu'il soit agréable à utiliser.
First, make it work. Then, make it fast. Finally, make it user-friendly.
Erst, mach', dass es funktioniert. Dann, mach', dass es schnell geht, Zum Schluss mach' es benutzerfreundlich.
Népomucène est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2011, 19h12   #8
Membre du Club
 
Avatar de Moine
 
Inscription : mars 2006
Messages : 172
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 172
Points : 44
Points : 44
Par défaut SQL Server 05 invalid data for type numeric

j'ai essayer ce que Nepo à conseiller, cette fois ci il me retourne deux onglets dans le premier il me met des lignes vides dans le deuxième il affiche le même message d'erreur. En gros y a pas un grand changement!

ce qui m'étonne, c'est que le problème est apparu brusquement.

je suis entrain de me demandé si ça ne serait pas un problème de configuration par hasard dans Oracle soit dans SQL Server, j'ai vu quelque part sur Internet où on conseiller de mettre OraOLEBD.oracle à 1 pour pouvoir résoudre ce problème, vu que je ne sais pas ce que sait,ni comment faire j'ai oublié. Si quelqu'un peut me dire comment mettre OraOLEBD.oracle à 1 je vais essayer voir.

merci!
__________________
Vive les bug!
Ils font découvrir beaucoup de choses.
Moine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2011, 12h15   #9
Membre du Club
 
Avatar de Moine
 
Inscription : mars 2006
Messages : 172
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 172
Points : 44
Points : 44
Par défaut SQL Server 05 invalid data for type numeric

mon serveur SQLServer n'as pas de provider OraOleDB.oracle, je suppose que le problème vient de là. si quelqu'un peut me dire comment créer un provider oracle sur SQL Server.

merci!
__________________
Vive les bug!
Ils font découvrir beaucoup de choses.
Moine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2011, 14h13   #10
Modérateur

 
Avatar de elsuket
 
Homme Nicolas Souquet
Administrateur de base de données
Inscription : janvier 2005
Messages : 4 667
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Souquet
Âge : 30
Localisation : Thaïlande

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2005
Messages : 4 667
Points : 8 715
Points : 8 715
Bonjour,

La solution se trouve apparemment ici.

Attention si vous êtes en 32 bits

@++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes.
Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012
elsuket est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2011, 10h51   #11
Membre du Club
 
Avatar de Moine
 
Inscription : mars 2006
Messages : 172
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 172
Points : 44
Points : 44
Par défaut SQL Server 05 invalid data for type numeric

Slt,

voici le message que je réçois quand je tente ce que elsuket m'a proposé:

Code :
1
2
3
4
5
6
7
 
     CREATE failed FOR linkedServer (SqlManagerUI)
 
     An Exception occured when executing an Transact-SQL Statment OR batch.
     (Microsoft.sqlserver.ConnectionInfo).
 
     NULL IS an invalid product name. (Microsoft Sql Server, Error:15429)
de quelle transactio SQL il est question? de quelle valeur Null il est question?

prière m'expliquer ce message d'erreur et ce qui peut la provoquer. merci!
__________________
Vive les bug!
Ils font découvrir beaucoup de choses.
Moine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2011, 11h56   #12
Responsable SQL Server

 
Avatar de mikedavem
 
Homme David BARBARIN
Expert SQL Server
Inscription : août 2005
Messages : 3 723
Détails du profil
Informations personnelles :
Nom : Homme David BARBARIN
Localisation : France, Haute Savoie (Rhône Alpes)

Informations professionnelles :
Activité : Expert SQL Server
Secteur : Conseil

Informations forums :
Inscription : août 2005
Messages : 3 723
Points : 6 844
Points : 6 844
Mettez nous le code que vous avez exécutez ....

++
mikedavem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2011, 13h45   #13
Membre du Club
 
Avatar de Moine
 
Inscription : mars 2006
Messages : 172
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 172
Points : 44
Points : 44
voici le code:
Code :
1
2
 
EXEC sp_addlinkedserver 'srvBF', 'Oracle', 'OraOLEDB.Oracle',BUR:1521/DB_Phone'
l'exécution passe mais sans effet.

quand j'essaie avec l'interface graphique cad clique droit sur Server Object->New->Linked server, je saisi le nom du lien, ça passe mais quand je choisis OraOleDb.oracle comme provider,je reçois le message ci dessous que j'ai indiqué.

je ne sais pas ce qui peut provoquer ça. faut il installer un logiciel? ou c'est juste une config. merci de m'aider;
__________________
Vive les bug!
Ils font découvrir beaucoup de choses.
Moine est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 12/04/2011, 12h08   #14
Membre du Club
 
Avatar de Moine
 
Inscription : mars 2006
Messages : 172
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 172
Points : 44
Points : 44
Par défaut SQL Server 05 invalid data for type numeric

Bonjour à tous,

J'ai trouvé ma solution, il se trouve qu'une réinstallation rétablit les Provider. J'ai fait des essais sur mon Laptop, il reste maintenant à l'appliquer au serveur. Vu que c'est une base en production, je ne souhaite pas prendre de risque. Je voudrais que quelqu'un me donne l'emplacement de tous les fichiers sensibles de SQL Server (fichiers de données,de config,etc.) de sorte qu'après la réinstallation je puisse revenir à la dernière config, c'est absolument nécessaire.

merci de m'aider!
__________________
Vive les bug!
Ils font découvrir beaucoup de choses.
Moine est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h40.


 
 
 
 
Partenaires

Hébergement Web