Bonjour,
Je veux créer une colonne d'une table
J'ai la même erreur avec VARCHAR2Code:DEPTNO NUMBER(2,0)
Mais je vois que MySQL ne prend pas ce type
MERCI.
A+
Version imprimable
Bonjour,
Je veux créer une colonne d'une table
J'ai la même erreur avec VARCHAR2Code:DEPTNO NUMBER(2,0)
Mais je vois que MySQL ne prend pas ce type
MERCI.
A+
Salut dari68.
Pour un nombre décimal, il fait procéder ainsi :
Mais si comme je le pense, c'est un entier, autant mettre :Code:`DEPTNO` DECIMAL(2,0) NOT NULL
@+Code:`DEPTNO` SMALLINT UNSIGNED NOT NULL
MERCI Artemus24.
Là j'ai une nouvelle colonne (MOYENNE) j'ai besoin d'avoir des nombres décimaux:
MOYENNE DECIMAL(5.2) Not Null Mais pour une moyenne 11.62 par exemple MySQL me retourne 12 !
MERCI de votre aide.
A+
Salut Daria68.
C'est un problème de conversion. Il faut que tu t'assures d'avoir partout des décimaux.
Si ce n'est pas le cas, il faut utiliser la fonction "cast".
Cela permet aussi d'avoir la précision voulue.
@+Code:cast(colonne as decimal(15,3))
Bonjour,
Merci, j'ai un gros fichier des insert MAIS j'ai les décimaux avec une virgule et Ma base MySQL n'accepte que les décimaux avec "le point"
Y aurait une option à activer ou une collation qui accepterait ces nombres avec un point et non pas une virgule ?
Comment appliquer cast(colonne as decimal(15,3)) sur un gros fichier ....?
MERCI.
A+
Salut Dari68.
Je suppose que votre colonne contenant vos décimaux est du type "varchar()".Citation:
Envoyé par Dari68
Pour résoudre ce problème, il suffit d'utiliser un fonction mysql qui va vous convertir la virgule en un point dans la chaîne de caractères contenant votre nombre décimal.
--> https://dev.mysql.com/doc/refman/8.0...nction_replaceCode:insert into votre_table (col1, col2, ...) values ('toto', replace(chaine, ',', '.'), ...);
La taille du fichier n'a aucune importance.Citation:
Envoyé par Dari68
Avant de faire le calcul, s'il s'agit de cela, vous devez vous assurer que vos colonnes dans vos tables sont dans le bon type, à savoir "decimal(15,3)".
Si ce n'est pas le cas, modifiez le type de vos colonnes.
Si vous devez convertir un entier en décimal, vous devez appliquer le "cast" sur la valeur avant de faire l'insertion.
J'aimerai connaitre la description de vos colonnes ainsi que le calcul que vous faites concernant cette moyenne qui vous pose problème.
@+
Bonjour Artemus24,
Ma colonne est typée DECIMAL(12,3) et les valeurs à insérer sont en "virgule" comme 5,55 et Mysql attend 5.55
MERCI.
A+
Salut dari68.
La virgule sera considéré par mysql comme un séparateur de ta chaine de caractères.
Seul la partie entière sera prise en compte et ton nombre sera comme un entier.
@+
Les types NUMBER et VARCHAR2 n'existent pas dans le langage SQL. Ce sont des types spécifiques à Oracle. Les types de données de la norme SQL sont :
DECIMAL, NUMERIC (pour les nombres en DCB - Décimal Codé Binaire), CHAR, VARCHAR, NCHAR et NVARCHAR pour les littéraux.
Pour vous former au SQL :
https://sqlpro.developpez.com/cours/...fondements/#L6
A +
Merci à vous 2 Artemus24 + SQLPro
A+