Quand vous insérez une valeur en dur dans une colonne numérique, cette valeur doit être spécifiée sans apostrophes, avec impérativement le point comme symbole décimal.
Donc 32.38 sans apostrophes, c'est parfait.
En revanche, si vous mettez cette valeur entre apostrophes, elle est initialement considérée comme une chaîne de caractères, et convertie en nombre en prenant en compte le symbole décimal en vigueur dans la session.
Si vous êtes en paramétrage français, c'est la virgule qui est attendue comme symbole décimal, et dans ce cas il faut avoir '32,38', et non '32.38'.
Dans votre cas, la solution la plus simple sera de modifier le paramétrage de votre session le temps de faire l'insertion, par exemple :
alter session set nls_numeric_characters='. ';
Le point est alors interprété comme symbole décimal, et l'espace comme séparateur de milliers, et '32.38' sera désormais valable.
Partager