оракул заменить запятую точкой и точка с запятой - PullRequest
2 голосов
/ 11 июня 2010

Как изменить запятую с периодом и период с запятой, например, от 1,50,000,25 до 1,50,000,25 в оракуле

Ответы [ 2 ]

4 голосов
/ 12 июня 2010

Для чисел эти символы - разделитель группы и десятичный разделитель - управляются параметрами NLS (глобализация).Значения по умолчанию определены NLS_TERRITORY, но мы можем переопределить их с определенными символами с помощью параметра NLS_NUMERIC_CHARACTERS:

SQL> var n number
SQL> exec :n := 1000000.123

PL/SQL procedure successfully completed.

SQL> select :n from dual
  2  /

         :N
-----------
1000000.123

SQL> select to_char(:n, '9G999G999D999') from dual
  2  /

TO_CHAR(:N,'9G
--------------
 1,000,000.123

SQL> alter session set nls_numeric_characters = ",."
  2  /

Session altered.

SQL> select to_char(:n, '9G999G999D999') from dual
  2  /

TO_CHAR(:N,'9G
--------------
 1.000.000,123

SQL>

Сведения о глобализации подробно рассматриваются в документации. Узнайте больше.

2 голосов
/ 12 июня 2010

используйте replace

вы можете сделать это в 3-х проходном процессе

например, поменять все ',' на уникальный 'безопасный' символ (например, ~)

затем

поменять все '.'в ','

наконец

поменяйте местами все '~' в '.'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...