Comment faire pour convertir des chaînes en nombre dans Oracle à l'aide de TO_NUMBER fonction fixe avec point décimal char?

J'ai besoin de convertir la procédure de string à decimal fixe avec séparateur décimal . indépendante sur les paramètres de culture. Ensuite, je sais que nombre décimal est limitée seulement avec 6 décimales après . et il n'y a pas de limitiation sur le nombre de chiffres avant .. À l'aide de la documentation d'Oracle et de ses exemples pour les chaînes de format je viens maintenant cette solution:

v_number := TO_NUMBER(v_string, '9999999999999999999999999999999999D999999', 'NLS_NUMERIC_CHARACTERS = ''. ''');

Nombre de 9 caractères avant D est le nombre maximum autorisé. Je trouve ce format de chaîne de caractères comme assez horrible. Est-il mieux chaîne de format pour cette conversion en général ou d'une certaine façon à omettre le deuxième paramètre de la fonction? En général, j'ai juste besoin de passer à la fonction NLS paramètre pour le dire je veux juste convertir avec séparateur décimal ., mais la deuxième paramètre est obligatoire dans ce cas.

Si le numéro dans le formulaire de chaîne est toujours comme "9999.99999" pourquoi ne pas simplement utiliser TO_NUMBER()? Vous souhaitez mettre de la contrainte d'avoir 6 chiffres après la virgule?
to_number(:X) analyse X dans le NLS de réglage de la session, qui pourrait être différente numérique séparateur de "."
Merci pour la précision...

OriginalL'auteur Tom | 2011-04-05