|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2004 Messages : 78 ![]() |
Bonjour ,
j'ai 2 tables oracle. J'utilise l'une pour alimenter l'autre avec un insert : insert into sas.stg_table1 select person_id, '0.2', ezw2_10_kc, 0 from sas.zw_table2 where ezw2_10_kc ne .; Rien de plus simple! Et poutant j'ai le message suivant : "error: ORA-01438: value larger than specified precision allows for this column" La colonne ezw2_10_kc de la table sas.stg_table1 contient des valeurs comprises entre -262435.09 et 602777.75 Cette colonne est définie comme Number, length 8. Dans la table sas.zw_table2, la colonne dans laquelle je souhaite insérer les valeurs de ezw2_10_kc est définie comme Number, length 8 and format 10.3 Or un format 10.3 = 10 chiffres dont 3 aprés la virgule...donc où est le pb? |
|
|
00
|
|
|
#2 |
![]() ![]() vincent rogier Inscription : juillet 2007 Messages : 2 355 ![]() |
As tu essayé en précisant les colonnes dans le insert ?
Peut être que l'ordre des colonnes des deux tables n'est pas le même... un insert sans spécifications de colonne est toujours une source potentielle de bug (si la table change, ...)
__________________
Vincent Rogier. Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique ! OCILIB (C Driver for Oracle) Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle |
|
00
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2004 Messages : 78 ![]() |
j'ai essayé : j'ai toujours le même problème.
Est ce que cela peut être lié au fait que la colonne a une longeur de 8 et donc au lieu de prendre le format 10,3 elle prend le format 8,3 |
|
|
00
|
|
|
#4 |
![]() ![]() vincent rogier Inscription : juillet 2007 Messages : 2 355 ![]() |
Peux tu poster les DDL des deux tables, stp ?
__________________
Vincent Rogier. Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique ! OCILIB (C Driver for Oracle) Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle |
|
00
|
|
|
#5 |
|
Expert Confirmé
![]() dba Inscription : juillet 2007 Messages : 2 523 ![]() |
|
|
|
00
|
|
|
#6 |
![]() ![]() vincent rogier Inscription : juillet 2007 Messages : 2 355 ![]() |
effectivement, j'avais loupé les quotes...
__________________
Vincent Rogier. Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique ! OCILIB (C Driver for Oracle) Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle |
|
00
|
|
|
#7 |
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2004 Messages : 78 ![]() |
exact....merci pour la remarque sur le nombre entre cote : j'ai corrigé.
Aprés vérification, la colonne ezw2_10_kc de la table sas.stg_table1 a été créée en tant que NUMBER(8,3); ce qui siginifie bien 8 chiffres dont 3 aprés la virgule ?? donc ce qui explique pourquoi 602777.75 ne passe pas... |
|
|
00
|
|
|
#8 |
![]() ![]() vincent rogier Inscription : juillet 2007 Messages : 2 355 ![]() |
Number(precision, scale) => précision est le nombre total de digits !
Donc number(8, 3) te permet de stocker xxxxx.yyy pas plus !
__________________
Vincent Rogier. Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique ! OCILIB (C Driver for Oracle) Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle |
|
00
|
|
|
#9 |
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2004 Messages : 78 ![]() |
ok.
Merci pour l'éclaircissement. Dernière question : il me semble qu'il y a des normes de "développement" et qu'on définit usuellement un champ nombre avec NUMBER(10,2) : est ce exact? |
|
|
00
|
|
|
#10 |
|
Membre éclairé
![]() Inscription : août 2005 Messages : 316 ![]() |
Hormis un perimetre invariable (poids,pourcentage,etc..)
j'ai tendance a definier les nombre en number sans précision, car notre appli a un nombre de decimale parametrable pour les qte et les prix |
|
|
00
|
|
|
#11 | |
![]() Inscription : décembre 2002 Messages : 2 401 ![]() |
Citation:
Si vous voulez être très général, vous pouvez utiliser NUMBER tout court. Dans ce cas, il s'agit de nombres à virgule flottante (nombre de décimales non fixé à l'avance), et vous pourrez y stocker tout ce que vous voulez.
__________________
Consultant / formateur Oracle indépendant Certifié OCP 10g et 11g, sécurité 11g |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com