powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / подскажите по типу number
42 сообщений из 42, показаны все 2 страниц
подскажите по типу number
    #39583010
olegeos
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В таблице колонка number(16), после ввода данных(1234567890123456) получается что-то вроде 1.4300000Е15
Что можно сделать? (версия оракла 9)
...
Рейтинг: 0 / 0
подскажите по типу number
    #39583015
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
olegeosЧто можно сделать? что можно делать с числами
...
Рейтинг: 0 / 0
подскажите по типу number
    #39583017
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
olegeos,
ето визуальное отображение по умолчанию

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

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

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

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

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

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

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

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

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

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

И замедлить выборку, видимо? ))) Я, естественно только о числовых идентификаторах...
...
Рейтинг: 0 / 0
подскажите по типу number
    #39585248
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FoxterИ замедлить выборкуДата занимает 7 байт. Количество дней с 1900-01-01 занимает 4 байта. Дни рождения ты как хранишь?
...
Рейтинг: 0 / 0
подскажите по типу number
    #39585267
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-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
подскажите по типу number
    #39585275
Фотография Foxter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-2-FoxterИ замедлить выборкуДата занимает 7 байт. Количество дней с 1900-01-01 занимает 4 байта. Дни рождения ты как хранишь?

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

Я не могу сейчас показать, но числа же сравниваются быстрее строк. Так как, насколько помню, строки сравниваются посимвольно, а числа целиком.
...
Рейтинг: 0 / 0
подскажите по типу number
    #39585284
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FoxterЯ не могу сейчас показать, но числа же сравниваются быстрее строк.
Вот когда сможешь, тогда и приходи.
...
Рейтинг: 0 / 0
подскажите по типу number
    #39585301
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FoxterТак как, насколько помню, строки сравниваются посимвольно, а числа целиком.Чтобы помнить, нужно знать, а ты не знаешь.
...
Рейтинг: 0 / 0
подскажите по типу number
    #39585305
dbpatch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
подскажите по типу number
    #39585306
Фотография Foxter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElicFoxterТак как, насколько помню, строки сравниваются посимвольно, а числа целиком.Чтобы помнить, нужно знать, а ты не знаешь.

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

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

погугли libc_hidden_builtin_def strncmp

строки давно сравниваются пачками байт - вплоть до того, что пачками по 16 байт как SSE2 числа
...
Рейтинг: 0 / 0
подскажите по типу number
    #39585315
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbpatchстроки давно сравниваются пачками байт - вплоть до того, что пачками по 16 байт как SSE2 числа
В контексте топика важнее, как именно хранится и обрабатывается number в oracle rdbms :)
...
Рейтинг: 0 / 0
подскажите по типу number
    #39585316
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FoxterElicпропущено...
Чтобы помнить, нужно знать, а ты не знаешь.

Ну докажите противоположное, что скорость сравнения строк и чисел одинаковая. Раз уж так настаиваете на этом.Ты, чудак, это кому?
...
Рейтинг: 0 / 0
подскажите по типу number
    #39585318
Фотография Foxter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbpatchFoxterпропущено...


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

погугли libc_hidden_builtin_def strncmp

строки давно сравниваются пачками байт - вплоть до того, что пачками по 16 байт как SSE2 числа

Спасибо, я догадывался, так как в JS сравнивается также. Символ переводится в его числовой юникод и просматривается старшее значение. Если оно больше - условие верно. С числами сравнивается их битовое выражение. В первом случае часть времени уходит на определение кода по символу.

Просто, предполагал, что возможно, в Oracle алгоритм другой...
...
Рейтинг: 0 / 0
подскажите по типу number
    #39585319
dbpatch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymousdbpatchстроки давно сравниваются пачками байт - вплоть до того, что пачками по 16 байт как SSE2 числа
В контексте топика важнее, как именно хранится и обрабатывается number в oracle rdbms :)

ой да ладно, мы тут в веселый оффтопик давно ушли.
у автора похоже банальная задачка на JDBC type mapping/value formatting и что он там дергает вроде toString()

хотя на dump() его числа тоже, конечно, было бы полезно посмотреть, потому в постгре вроде тоже на java.math.BigDecimal маппится, и не сваливается в отображение мантиссы, в отличие от эхотага

но пусть покопает сам, оно всяк полезно
...
Рейтинг: 0 / 0
подскажите по типу number
    #39585320
Фотография Foxter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ElicFoxterпропущено...


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

Вам, конечно ))
...
Рейтинг: 0 / 0
подскажите по типу number
    #39585325
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FoxterElicпропущено...
Ты, чудак, это кому?

Вам, конечно ))Я где-то настаивал на том, что ты мне приписываешь?
...
Рейтинг: 0 / 0
подскажите по типу number
    #39585326
Фотография Foxter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elic,

Нет, но поставили под сомнение мое утверждение...
...
Рейтинг: 0 / 0
подскажите по типу number
    #39585327
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Foxter"Символ переводится в его числовой юникод"
Ну-ну...
...
Рейтинг: 0 / 0
подскажите по типу number
    #39585328
Фотография Foxter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymousFoxter"Символ переводится в его числовой юникод"
Ну-ну...

https://learn.javascript.ru/string#кодировка-юникод
...
Рейтинг: 0 / 0
подскажите по типу number
    #39585329
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Foxterandrey_anonymousпропущено...

Ну-ну...

https://learn.javascript.ru/string#кодировка-юникод
Читай внимательно:
авторВсе строки имеют внутреннюю кодировку Юникод.
...
Рейтинг: 0 / 0
подскажите по типу number
    #39585330
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FoxterНет, но поставили под сомнение мое утверждение...Чудак, тебе показалось. Я процитировал лишь то, что процитировал.
...
Рейтинг: 0 / 0
подскажите по типу number
    #39585331
Фотография Foxter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elic,

Ну тогда это, скорее, вы - чудак )) Но, спасибо, позабавили... До связи!
...
Рейтинг: 0 / 0
подскажите по типу number
    #39585334
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbpatchстроки давно сравниваются пачками байт - вплоть до того, что пачками по 16 байт как SSE2 числа

Да, но перед этим они должны преобразоваться в "ключ" для получения (при необходимости)
case/accent insensitivity, что есть операция нетривиальная и довольно тяжёлая. Для чисел
она чаще всего попроще будет.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
подскажите по типу number
    #39585337
dbpatch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Foxterandrey_anonymousпропущено...

Ну-ну...

https://learn.javascript.ru/string#кодировка-юникод

не всякая строка в юникоде, начнем с этого. и при чем тут javascript?
оно конечно понятно, что проще считать, что весь мир в UTF-16, но существуют еще и UTF-8 и даже KOI8-R
...
Рейтинг: 0 / 0
подскажите по типу number
    #39585338
Фанат Elic-а
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
FoxterElic,

Ну тогда это, скорее, вы - чудак )) Но, спасибо, позабавили... До связи!


Не смей так писать.
...
Рейтинг: 0 / 0
подскажите по типу number
    #39585341
dbpatch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovdbpatchстроки давно сравниваются пачками байт - вплоть до того, что пачками по 16 байт как SSE2 числа

Да, но перед этим они должны преобразоваться в "ключ" для получения (при необходимости)
case/accent insensitivity, что есть операция нетривиальная и довольно тяжёлая. Для чисел
она чаще всего попроще будет.


если исходить из оптимистичного варианта что строки одинаковые (или их начало одинаковое) - то первым шагом можно просто сравнить 16 байт as is через SSE, это дешево, с учетом параллелизма конвеера - практически бесплатно, и уже потом уже потом начинать декодирование отдельных байт.

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


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