powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / перевод 7.012345678E9 в varchar2 и в number
25 сообщений из 49, страница 1 из 2
перевод 7.012345678E9 в varchar2 и в number
    #39602718
abort
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это значение 7.012345678E9 хранится в поле varchar2
как получить 7012345678 в виде varchar2 и number
...
Рейтинг: 0 / 0
перевод 7.012345678E9 в varchar2 и в number
    #39602720
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to_number, чудак, не пробовал?
...
Рейтинг: 0 / 0
перевод 7.012345678E9 в varchar2 и в number
    #39602783
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elicto_number, чудак, не пробовал?
пробовал
но, чтоб задать нлс параметры для TO_NUMBER необходимо указывать маску, что вызывет неудобства

....
stax
...
Рейтинг: 0 / 0
перевод 7.012345678E9 в varchar2 и в number
    #39602789
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Staxно, чтоб задать нлс параметры для TO_NUMBER необходимо указывать маску, что вызывет неудобстваНе нужно. 21185206
...
Рейтинг: 0 / 0
перевод 7.012345678E9 в varchar2 и в number
    #39602830
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elic,
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SQL> ed
Wrote file afiedt.buf

  1  with t as (select '7,012345678E9' s from dual)
  2* select to_number(s,'fmd') n from t
SQL> /
select to_number(s,'fmd') n from t
                 *
ERROR at line 2:
ORA-01722: invalid number



.....
stax
...
Рейтинг: 0 / 0
перевод 7.012345678E9 в varchar2 и в number
    #39602841
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Станислав, во-первых, ты не то или не так читаешь.
Во-вторых, я не разжёвываю. Тем более, что это на форуме уже разжёвывалось.
...
Рейтинг: 0 / 0
перевод 7.012345678E9 в varchar2 и в number
    #39602845
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elic,

ой, звиняйте, не то запостил
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SQL> ed
Wrote file afiedt.buf

  1  with t as (select '7.012345678E9' s from dual)
  2* select to_number(s,'fmd') n from t
SQL> /
select to_number(s,'fmd') n from t
                 *
ERROR at line 2:
ORA-01722: invalid number

SQL>
...
Рейтинг: 0 / 0
перевод 7.012345678E9 в varchar2 и в number
    #39602851
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Staxой, звиняйте, не то запостилТы всё равно на ручнике.
...
Рейтинг: 0 / 0
перевод 7.012345678E9 в varchar2 и в number
    #39602858
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elic,

не спорю
что на ручнике, пробую 21195603

пока-что не выходит каменный цветок
.....
stax
...
Рейтинг: 0 / 0
перевод 7.012345678E9 в varchar2 и в number
    #39602876
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Staxпока-что не выходит каменный цветокНеужели так сложно тщательней пройтись по приведённым ссылкам, чтобы не пороть дурную отсебятину?
...
Рейтинг: 0 / 0
перевод 7.012345678E9 в varchar2 и в number
    #39602887
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElicStaxпока-что не выходит каменный цветокНеужели так сложно тщательней пройтись по приведённым ссылкам, чтобы не пороть дурную отсебятину?

сразу прошелся, допускаю что возможно не очень тщательно

но не нашел прямого ответа на 21196088 с учетом 21195603

.....
stax
...
Рейтинг: 0 / 0
перевод 7.012345678E9 в varchar2 и в number
    #39602894
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Staxсразу прошелся, допускаю что возможно не очень тщательно24 ноя 09, 17:57; 29 апр 09, 12:44.
...
Рейтинг: 0 / 0
перевод 7.012345678E9 в varchar2 и в number
    #39602906
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а я недавно скандал закатил соседям
и они быстренько сделали поле намбером :)
...
Рейтинг: 0 / 0
перевод 7.012345678E9 в varchar2 и в number
    #39602911
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElicStaxсразу прошелся, допускаю что возможно не очень тщательно24 ноя 09, 17:57; 29 апр 09, 12:44.


4760108 - с replace
7128431 - c translate

где о них в 21195603 и 21196063

.....
stax
...
Рейтинг: 0 / 0
перевод 7.012345678E9 в varchar2 и в number
    #39602918
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Staxгде о них вОставайся на ручнике.
...
Рейтинг: 0 / 0
перевод 7.012345678E9 в varchar2 и в number
    #39602932
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymxа я недавно скандал закатил соседям
и они быстренько сделали поле намбером :)
А до этого постоянно заливали тебя varchar'ами?
...
Рейтинг: 0 / 0
перевод 7.012345678E9 в varchar2 и в number
    #39602950
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
2.
3.
4.
5.
6.
7.
with t as (select '70123456789' s from dual
union all select '7.0123456789' s from dual
union all select '7,012345678E9' s from dual
union all select '7.012345678E9' s from dual
)
select to_number(replace(s,translate(s,'-0123456789E','-'), to_char(0,'fmd'))) n from t
;
...
Рейтинг: 0 / 0
перевод 7.012345678E9 в varchar2 и в number
    #39602954
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous
Код: plsql
1.
select to_number(replace(s,translate(s,'-0123456789E','-'), to_char(0,'fmd'))) n from t


Примечание: решение не умеет групповые разделители.
...
Рейтинг: 0 / 0
перевод 7.012345678E9 в varchar2 и в number
    #39602976
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous,

ето понятно
с помощью только to_number ( 21195603 ) неудобно

Код: plsql
1.
2.
3.
4.
5.
6.
7.
SQL> with t as (select '7.012345678E9' s from dual)
  2  select to_number(s,'999999999999d999999999999EEEE','NLS_NUMERIC_CHARACTERS=.,') n from t
  3  /

         N
----------
7012345678



.....
stax
...
Рейтинг: 0 / 0
перевод 7.012345678E9 в varchar2 и в number
    #39602978
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymousandrey_anonymous
Код: plsql
1.
select to_number(replace(s,translate(s,'-0123456789E','-'), to_char(0,'fmd'))) n from t


Примечание: решение не умеет групповые разделители.
какой вообще смысл этого решения?
если строка формировалась из числа в текущем сеансе, то to_char(0,'fmd') избыточен.
А если в другом - то бессмысленен.
...
Рейтинг: 0 / 0
перевод 7.012345678E9 в varchar2 и в number
    #39602998
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
boobyкакой вообще смысл этого решения?
см. первое сообщение топика.
...
Рейтинг: 0 / 0
перевод 7.012345678E9 в varchar2 и в number
    #39603001
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
booby,

в базу пишут примерно так to_char(x,'0.99999999999eeee)

....
stax
...
Рейтинг: 0 / 0
перевод 7.012345678E9 в varchar2 и в number
    #39603010
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Staxв базу пишут примерно так to_char(x,'0.99999999999eeee)

Это мягкий вариант :)
Могут "грузить апельсины бочками" - тупо складировать числа в varchar2 неявным преобразованием без оглядки на NLS-окружение сессии, что приводит к жуткой каше в данных.

...Стас, проблема с "ручником", на которую указывал Виталий, исчерпана?
...
Рейтинг: 0 / 0
перевод 7.012345678E9 в varchar2 и в number
    #39603027
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Staxс помощью только to_number ( 21195603 ) неудобно


Гм...
Поехали :
StaxElicto_number, чудак, не пробовал?
пробовал
но, чтоб задать нлс параметры для TO_NUMBER необходимо указывать маску, что вызывет неудобства

на что Виталий вполне корректно отвечает:
ElicНе нужно. 21185206

и таки действительно - не обязательно:

andrey_anonymousandrey_anonymous
Код: plsql
1.
2.
3.
4.
5.
6.
select to_number(
           replace(s
                  ,translate(s,'-0123456789E','-')
                  , to_char(0,'fmd')
                  )
         /*тут могла быть Ваша маска*/) n from t


Примечание: решение не умеет групповые разделители.
...
Рейтинг: 0 / 0
перевод 7.012345678E9 в varchar2 и в number
    #39603054
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymous...Стас, проблема с "ручником", на которую указывал Виталий, исчерпана?

насчет ручника у Виталия спрашивайте

я отвечал на (выделено мною)
авторto_number, чудак , не пробовал?

не вижу там намека на пробование друхих ф-ций

на
автор чтобы задать нлс параметры для TO_NUMBER необходимо указывать маску, что вызывет неудобства


ответа в
Код: plsql
1.
Не нужно. 21185206



не нашел

причем я не утверждал что для 21195590 обязательно надо использовать нлс параметр

Elic, спросил пробовол ли to_number, я ответил пробовал, но мне неудобно

зы
я догадывался как получить 7012345678

....
stax
...
Рейтинг: 0 / 0
25 сообщений из 49, страница 1 из 2
Форумы / Oracle [игнор отключен] [закрыт для гостей] / перевод 7.012345678E9 в varchar2 и в number
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]