Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / подскажите по типу number / 25 сообщений из 42, страница 1 из 2
12.01.2018, 09:21
    #39583010
olegeos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите по типу number
В таблице колонка number(16), после ввода данных(1234567890123456) получается что-то вроде 1.4300000Е15
Что можно сделать? (версия оракла 9)
...
Рейтинг: 0 / 0
12.01.2018, 09:27
    #39583015
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите по типу number
olegeosЧто можно сделать? что можно делать с числами
...
Рейтинг: 0 / 0
12.01.2018, 09:28
    #39583017
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите по типу number
olegeos,
ето визуальное отображение по умолчанию

зависит от средств вывода
напр
1) в плюсе col field format 9999999999999999 (или set numformat)
2) явно преобразовать в строку используя нужный формат to_char(field,'9999999999999999')

.....
stax
...
Рейтинг: 0 / 0
12.01.2018, 09:36
    #39583024
olegeos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите по типу number
Дело в том, что программа грузит через (jdbc) в таблицу данные и потом они отражаются в веб приложении, ранее поле было короче (9 символов) после увеличения длины вместо 1234567890123456 стало 1.4444Е12. Неважно в приложении или через sqlplus.
В том же postgres такой проблемы нет.
...
Рейтинг: 0 / 0
12.01.2018, 09:41
    #39583026
tru55
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите по типу number
olegeos потом они отражаются в веб приложении
Так с приложением и разбирайся, причем здесь Oracle? В БД числа хранятся одинаково независимо от количества цифр.
...
Рейтинг: 0 / 0
12.01.2018, 09:54
    #39583041
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите по типу number
olegeos,

select id,to_char(f,'9999999999999999') s,dump(f) d from table where id=xxx
что выдает?

xxx -ід записи с "длинным" значением

.....
stax
...
Рейтинг: 0 / 0
12.01.2018, 10:20
    #39583061
olegeos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите по типу number
авторto_char(f,'9999999999999999')
нормально выдает
...
Рейтинг: 0 / 0
12.01.2018, 15:11
    #39583347
anvano
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите по типу number
olegeosавторto_char(f,'9999999999999999')
нормально выдает

Значит виновато клиентское приложение в таком отображении. Копайте там.
...
Рейтинг: 0 / 0
12.01.2018, 17:58
    #39583455
exp98
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите по типу number
olegeos, а может из клиента передаётся стандартный тип double ? Он как раз 64 бита, или 15 десятичных цифр. А когда в него попадает большеее кол-во десятичных цифр, то в клиенте (или где-либо на стыке технологий) конвертируется в экспоненциальный формат? типа того. Нет?
...
Рейтинг: 0 / 0
12.01.2018, 22:51
    #39583573
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите по типу number
olegeosВ таблице колонка number(16), после ввода данных(1234567890123456) получается что-то вроде 1.4300000Е15
Что можно сделать? (версия оракла 9)номера счетов и прочие идентификаторы лучше хранить как строки
...
Рейтинг: 0 / 0
15.01.2018, 13:28
    #39584375
Foxter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите по типу number
andreymxolegeosВ таблице колонка number(16), после ввода данных(1234567890123456) получается что-то вроде 1.4300000Е15
Что можно сделать? (версия оракла 9)номера счетов и прочие идентификаторы лучше хранить как строки

Идентификаторы как строки? А почему?
...
Рейтинг: 0 / 0
15.01.2018, 14:55
    #39584463
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите по типу number
Foxter,

Чтобы избежать проблем точности в последних разрядах и заменить их проблемами кодировки и сортировки.
...
Рейтинг: 0 / 0
15.01.2018, 15:13
    #39584491
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите по типу number
envFoxter,

Чтобы избежать проблем точности в последних разрядах и заменить их проблемами кодировки и сортировки.+ лидирующие нули по вкусу
...
Рейтинг: 0 / 0
15.01.2018, 15:23
    #39584499
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите по типу number
FoxterИдентификаторы как строки? А почему?Если федеральное казначейство не изменило правила, то лицевые счета государственных учреждений могут содержать (русские) буквы.
...
Рейтинг: 0 / 0
16.01.2018, 16:23
    #39585233
Foxter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите по типу number
envFoxter,

Чтобы избежать проблем точности в последних разрядах и заменить их проблемами кодировки и сортировки.

И замедлить выборку, видимо? ))) Я, естественно только о числовых идентификаторах...
...
Рейтинг: 0 / 0
16.01.2018, 16:36
    #39585248
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите по типу number
FoxterИ замедлить выборкуДата занимает 7 байт. Количество дней с 1900-01-01 занимает 4 байта. Дни рождения ты как хранишь?
...
Рейтинг: 0 / 0
16.01.2018, 16:46
    #39585267
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите по типу number
-2-FoxterИ замедлить выборкуДата занимает 7 байт. Количество дней с 1900-01-01 занимает 4 байта. Дни рождения ты как хранишь?
Гм...
Код: plsql
1.
2.
3.
4.
5.
with t as (select trunc(sysdate)-date'1900-01-01' days from dual)
select days, dump(days) from t;

DAYS  DUMP(DAYS)
43114 Typ=14 Len=8: 106,168,0,0,0,0,0,0
...
Рейтинг: 0 / 0
16.01.2018, 16:49
    #39585275
Foxter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите по типу number
-2-FoxterИ замедлить выборкуДата занимает 7 байт. Количество дней с 1900-01-01 занимает 4 байта. Дни рождения ты как хранишь?

Я про поиск по тексту и связи с внешними таблицами при связи по регистрационному идентификатору документа
...
Рейтинг: 0 / 0
16.01.2018, 16:50
    #39585276
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите по типу number
FoxterЯ про поиск по тексту и связи с внешними таблицами при связи по регистрационному идентификатору документа
Покажи как замедляет.
...
Рейтинг: 0 / 0
16.01.2018, 16:52
    #39585280
Foxter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите по типу number
andrey_anonymousFoxterЯ про поиск по тексту и связи с внешними таблицами при связи по регистрационному идентификатору документа
Покажи как замедляет.

Я не могу сейчас показать, но числа же сравниваются быстрее строк. Так как, насколько помню, строки сравниваются посимвольно, а числа целиком.
...
Рейтинг: 0 / 0
16.01.2018, 16:54
    #39585284
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите по типу number
FoxterЯ не могу сейчас показать, но числа же сравниваются быстрее строк.
Вот когда сможешь, тогда и приходи.
...
Рейтинг: 0 / 0
16.01.2018, 17:06
    #39585301
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите по типу number
FoxterТак как, насколько помню, строки сравниваются посимвольно, а числа целиком.Чтобы помнить, нужно знать, а ты не знаешь.
...
Рейтинг: 0 / 0
16.01.2018, 17:08
    #39585305
dbpatch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите по типу number
andrey_anonymous-2-пропущено...
Дата занимает 7 байт. Количество дней с 1900-01-01 занимает 4 байта. Дни рождения ты как хранишь?
Гм...
Код: plsql
1.
2.
3.
4.
5.
with t as (select trunc(sysdate)-date'1900-01-01' days from dual)
select days, dump(days) from t;

DAYS  DUMP(DAYS)
43114 Typ=14 Len=8: 106,168,0,0,0,0,0,0



Что такое Typ=14

и что если добавить еще один trunc, какой тогда len,typ ?

Код: plsql
1.
2.
with t as (select trunc(trunc(sysdate)-date'1900-01-01') days from dual)
select days, dump(days) from t;
...
Рейтинг: 0 / 0
16.01.2018, 17:10
    #39585306
Foxter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите по типу number
ElicFoxterТак как, насколько помню, строки сравниваются посимвольно, а числа целиком.Чтобы помнить, нужно знать, а ты не знаешь.

Ну докажите противоположное, что скорость сравнения строк и чисел одинаковая. Раз уж так настаиваете на этом.
...
Рейтинг: 0 / 0
16.01.2018, 17:16
    #39585312
dbpatch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
подскажите по типу number
FoxterElicпропущено...
Чтобы помнить, нужно знать, а ты не знаешь.

Ну докажите противоположное, что скорость сравнения строк и чисел одинаковая. Раз уж так настаиваете на этом.

погугли libc_hidden_builtin_def strncmp

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


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