Pamiętaj, że przekształcasz liczbę w ciąg. Liczba nie ma sensu „”, ani „”. czy cokolwiek - jest to liczba.
Sztuczka polega na tym, aby uzyskać TO_CHAR
funkcja konwertująca liczbę wewnętrzną na reprezentację ciągu, którą chcesz. Jest kilka problemów, o które należy się martwić:uzyskanie poprawnego punktu podstawy (dziesiętnego) i radzenie sobie z dopełnieniem.
Oto działający przykład:
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
Odpowiednie części maski:
FM
służy do przycinania początkowych i końcowych spacji, których Oracle zwykle używa do uzupełniania liczb.
D
jest punktem podstawy, w zależności od ustawień NLS.
NLS_NUMERIC_CHARACTERS ...
jest nadpisaniem lokalnych ustawień NLS — może to nie być konieczne, jeśli w ustawieniach regionalnych używa się przecinka jako miejsca dziesiętnego, ale jest to sposób na wymuszenie takiego zachowania w bazie danych z, powiedzmy, ustawieniami północnoamerykańskimi.