2012-10-09 5 views
0

Я пытаюсь преобразовать несколько типов varchar (например, 1234.456) в число с плавающей запятой, используя функцию oracle to_number(). На моем ПК (Locale German) Oracle SQLDeveloper возвращает номер в fromat 1234,567 вместо 1234.567 и заставляет его вызывать ошибку oracle ORA-01722-invalid number. Я привязал свой системный язык к en_usa, но не использовал. Как я могу изменить поведение оракула?Oracle to_number (1234.567)?

Помощь будет значительно appriciated

+0

Является действительным локаль? Я думаю, что коды стран - 2 символа. en_us –

+0

@ John Watts Я просто хочу сказать по-английски, я установил его в windows 7 – user964147

+1

Попробуйте использовать nlsparam. http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions191.htm –

ответ

2

Попробуйте так:

SELECT to_number('1234.5678', '9999D9999', 'NLS_NUMERIC_CHARACTERS=.,') 
FROM dual; 

Here en_usa является скрипку

+0

Большое спасибо за ваш ответ. это сработало для вас? для меня это did'nt – user964147

+0

@ user964147, да, я добавил скрипку, чтобы вы могли видеть ... ** Примечание: ** Я поставил только четыре цифры в моем формате ('9999'), если вы ожидаете большего, чем вы должен изменить формат (например, '999999999D99999999') –

Смежные вопросы