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

....
stax
...
Рейтинг: 0 / 0
16.02.2018, 10:56
    #39602789
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перевод 7.012345678E9 в varchar2 и в number
Staxно, чтоб задать нлс параметры для TO_NUMBER необходимо указывать маску, что вызывет неудобстваНе нужно. 21185206
...
Рейтинг: 0 / 0
16.02.2018, 11:32
    #39602830
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перевод 7.012345678E9 в varchar2 и в number
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
16.02.2018, 11:44
    #39602841
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перевод 7.012345678E9 в varchar2 и в number
Станислав, во-первых, ты не то или не так читаешь.
Во-вторых, я не разжёвываю. Тем более, что это на форуме уже разжёвывалось.
...
Рейтинг: 0 / 0
16.02.2018, 11:47
    #39602845
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перевод 7.012345678E9 в varchar2 и в number
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
16.02.2018, 11:52
    #39602851
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перевод 7.012345678E9 в varchar2 и в number
Staxой, звиняйте, не то запостилТы всё равно на ручнике.
...
Рейтинг: 0 / 0
16.02.2018, 12:06
    #39602858
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перевод 7.012345678E9 в varchar2 и в number
Elic,

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

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

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

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

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


4760108 - с replace
7128431 - c translate

где о них в 21195603 и 21196063

.....
stax
...
Рейтинг: 0 / 0
16.02.2018, 13:18
    #39602918
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перевод 7.012345678E9 в varchar2 и в number
Staxгде о них вОставайся на ручнике.
...
Рейтинг: 0 / 0
16.02.2018, 13:32
    #39602932
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перевод 7.012345678E9 в varchar2 и в number
andreymxа я недавно скандал закатил соседям
и они быстренько сделали поле намбером :)
А до этого постоянно заливали тебя varchar'ами?
...
Рейтинг: 0 / 0
16.02.2018, 13:45
    #39602950
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перевод 7.012345678E9 в varchar2 и в number
Код: 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
16.02.2018, 13:47
    #39602954
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перевод 7.012345678E9 в varchar2 и в number
andrey_anonymous
Код: plsql
1.
select to_number(replace(s,translate(s,'-0123456789E','-'), to_char(0,'fmd'))) n from t


Примечание: решение не умеет групповые разделители.
...
Рейтинг: 0 / 0
16.02.2018, 14:06
    #39602976
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перевод 7.012345678E9 в varchar2 и в number
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
16.02.2018, 14:08
    #39602978
booby
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перевод 7.012345678E9 в varchar2 и в number
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
16.02.2018, 14:37
    #39602998
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перевод 7.012345678E9 в varchar2 и в number
boobyкакой вообще смысл этого решения?
см. первое сообщение топика.
...
Рейтинг: 0 / 0
16.02.2018, 14:39
    #39603001
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перевод 7.012345678E9 в varchar2 и в number
booby,

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

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

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

...Стас, проблема с "ручником", на которую указывал Виталий, исчерпана?
...
Рейтинг: 0 / 0
16.02.2018, 14:59
    #39603027
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перевод 7.012345678E9 в varchar2 и в number
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
16.02.2018, 15:15
    #39603054
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
перевод 7.012345678E9 в varchar2 и в number
andrey_anonymous...Стас, проблема с "ручником", на которую указывал Виталий, исчерпана?

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

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

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

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


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



не нашел

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

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

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

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


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