Имайте предвид, че трансформирате число в низ. Числото няма никакво значение за "," или "." или нещо друго - това е число.
Номерът е да получите TO_CHAR
функция за преобразуване на вътрешното число в низовото представяне, което искате. Има няколко проблема, за които да се тревожите:правилното получаване на основата (десетична) и справяне с подпълването.
Ето работещ пример:
SELECT to_char(0.00235,'FM99999999999999990D99999', 'NLS_NUMERIC_CHARACTERS = '',.''') FROM DUAL;
0,00235
SELECT to_char(156.45823,'FM99999999999999990D99999', 'NLS_NUMERIC_CHARACTERS = '',.''') FROM DUAL;
156,45823
SELECT to_char(-0.0235,'FM99999999999999990D99999', 'NLS_NUMERIC_CHARACTERS = '',.''') FROM DUAL;
-0,0235
SELECT to_char(-156.45623,'FM99999999999999990D99999', 'NLS_NUMERIC_CHARACTERS = '',.''') FROM DUAL;
-156,45623
SELECT to_char(123456789.45623,'FM99999999999999990D99999', 'NLS_NUMERIC_CHARACTERS = '',.''') FROM DUAL;
123456789,45623
Съответните части на маската:
FM
се използва за изрязване на водещи и завършващи празни места, които Oracle обикновено използва за изписване на числа.
D
е точката на радикса, в зависимост от вашите NLS настройки.
NLS_NUMERIC_CHARACTERS ...
е отмяна на вашите локални NLS настройки - това може да не е необходимо, ако вашият локал използва запетая за десетичен знак, но това е начин, по който можете да наложите това поведение в база данни с, да речем, настройки за Северна Америка.