Précédent   Forum des professionnels en informatique > Bases de données > Firebird
Firebird Forum d'entraide sur le SGBD Firebird. Avant de poster -> F.A.Q Firebird, Tutoriels
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 05/04/2008, 22h46   #1
Invité régulier
 
Inscription : juillet 2004
Messages : 24
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 24
Points : 7
Points : 7
Par défaut erreur de chaine

Bonjour à tous
J'essaye d'exécuter une requete d'insertion de donnée comme suit :
Code :
1
2
INSERT INTO A_TEST (Lib)
SELECT LibArt FROM ARTICLE
les champs Lib et LibArt dans les deux tables sont de type varchar (50). Mais j'obtiens le message d'erreur suivant :
Citation:
Arithmetic overflow or division by zero has occurred.Arithmetic exception, numeric overflow, or string truncation.
Cannot transliterate character between character sets.
Je n'arrive pas à comprendre la raison de cette erreur. Je soupconne qu'il y ait des caractères dans certains enregistrements qui ne sont pas acceptés par la requete.
Merci pour toute aide
IRAD est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/04/2008, 23h28   #2
Expert Confirmé

 
Homme Philippe Makowski
Consultant spécialité Firebird
Inscription : mai 2002
Messages : 2 215
Détails du profil
Informations personnelles :
Nom : Homme Philippe Makowski
Âge : 49
Localisation : France

Informations professionnelles :
Activité : Consultant spécialité Firebird
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 2 215
Points : 3 318
Points : 3 318
pas le même jeux de caractère dans les deux champs ?
donne la définition exacte des deux tables
__________________
Philippe Makowski
IBPhoenix - Firebird
Membre de l'April
makowski est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2008, 13h00   #3
Invité régulier
 
Inscription : juillet 2004
Messages : 24
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 24
Points : 7
Points : 7
Merci Beaucoup. Le jeu de caractères était en effet différent. Celle de la table source était ISO8859_1 et celle de la table de destination était WIN1251. Je viens de rectifier les deux à ISO8859_1 et ça marche. Mon problème est donc résolu.
Mais j'ai une autre question à propos des jeux de caractères: Lequel est le plus "large" et lequel convient pour l'environnement francophone?
Encore merci.
IRAD est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2008, 23h13   #4
Expert Confirmé

 
Homme Philippe Makowski
Consultant spécialité Firebird
Inscription : mai 2002
Messages : 2 215
Détails du profil
Informations personnelles :
Nom : Homme Philippe Makowski
Âge : 49
Localisation : France

Informations professionnelles :
Activité : Consultant spécialité Firebird
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 2 215
Points : 3 318
Points : 3 318
plus "large" ?

ISO8859_1 est très bien, sinon UTF8

cf par exemple http://www.destructor.de/firebird/charsets.htm
__________________
Philippe Makowski
IBPhoenix - Firebird
Membre de l'April
makowski est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2008, 09h57   #5
Invité régulier
 
Inscription : juillet 2004
Messages : 24
Détails du profil
Informations forums :
Inscription : juillet 2004
Messages : 24
Points : 7
Points : 7
Infiniment merci
IRAD est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2008, 21h54   #6
Expert Confirmé Sénior
 
Avatar de _skip
 
Homme
Développeur d'applications
Inscription : novembre 2005
Messages : 2 326
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : Suisse

Informations professionnelles :
Activité : Développeur d'applications
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : novembre 2005
Messages : 2 326
Points : 4 798
Points : 4 798
UTF-8 passe partout c'est unicode et très utilisé. Le problème c'est que les caractères ne font pas tous la même taille en octets, et donc l'accès aléatoire sur la chaine n'est pas possible.
Cela veut dire que l'extraction de sous chaines et ce genre d'opération seront moins performantes que sur un charset qui utilise des longueurs fixes.
_skip est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h45.


 
 
 
 
Partenaires

Hébergement Web