Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Арифметика больших чисел в SQL (неполадки в Оракле) / 18 сообщений из 18, страница 1 из 1
02.10.2020, 04:16
    #40004722
НеофитSQL
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Арифметика больших чисел в SQL (неполадки в Оракле)
Пишу SQL запрос для подсчета траектории Вояджера 1 за пределами солнечной системы.
Вначале никак не мог решить в какой системе лучше - в дюймовой, или метрической.

Считать в футах - можно промахнуться, как уже было когда-то. Вместо Альдебарана к Сириусу унесется.
Считать в метрах - тот же Маск обвинит в космополитстве.

Поэтому выбрал за единицу измерения постоянную Планка. Она политически нейтральная, но такая маленькая, что если бы не научная нотация, запутался бы в нулях - сплошной гугол на гуголе.

Застрял я в данный момент на том, что мой SQL 11.2 наотрез отказывается брать абсолютную величину расстояния от моего стула до Вояджера.

Код: plsql
1.
2.
3.
4.
SQL> select abs(1e200d) from dual;
ABS(1E200D)
-----------
      1E126



В триллионы раз, зараза, занижает расстояние. Если б не врал, я бы мог рукой дотянуться.

А у вас были такие проблемы? ;)

Если серьезно, как в SQL+ показывать большие числа?
Функция работает нормально, просто SQL показывать большие числа не хочет.
...
Рейтинг: 0 / 0
02.10.2020, 09:22
    #40004766
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Арифметика больших чисел в SQL (неполадки в Оракле)
НеофитSQL,

Код: plsql
1.
2.
3.
4.
5.
SQL> select abs(1e200d) d from dual;

         D
----------
  1.0E+200



Снова скамейка виновата, да.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SQL> select banner from v$version;

BANNER
-------------------------------------------------------------------------
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
PL/SQL Release 11.2.0.2.0 - Production
CORE	11.2.0.2.0	Production
TNS for Linux: Version 11.2.0.2.0 - Production
NLSRTL Version 11.2.0.2.0 - Production
...
Рейтинг: 0 / 0
02.10.2020, 09:59
    #40004780
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Арифметика больших чисел в SQL (неполадки в Оракле)
НеофитSQL,

Пока опять не началось придумывание отсебятины. set numwidth в sqlplus ограничен 128 разрядами.
Давайте вы вместо бреда будете писать какую задачу решаете.
...
Рейтинг: 0 / 0
02.10.2020, 15:42
    #40004924
НеофитSQL
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Арифметика больших чисел в SQL (неполадки в Оракле)
Непонятно, какая из скамеек.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
SQL> select abs(1e200d) d from dual;
         D
----------
     1E126

SQL> select banner from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
PL/SQL Release 11.2.0.1.0 - Production
CORE	11.2.0.1.0	Production
TNS for 64-bit Windows: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production

SQL> select 1e200d from dual;
    1E200D
----------
     1E126

SQL> 



Возможно, где-то есть настройки которые позволяют печатать большие числа? 1е200d это больше предела NUMBER.
...
Рейтинг: 0 / 0
02.10.2020, 15:58
    #40004929
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Арифметика больших чисел в SQL (неполадки в Оракле)
НеофитSQL,

Может уже объясните зачем вообще "печатать из sqlplus большие числа"? Какой архитектурный косяк вы на этот раз закладываете в своё приложение?
...
Рейтинг: 0 / 0
02.10.2020, 16:14
    #40004935
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Арифметика больших чисел в SQL (неполадки в Оракле)
НеофитSQL,

Согласно документации, binary_double имеет лимиты с 1.79769313486231E+308 по 2.22507485850720E-308.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SQL> select 2e308d from dual;
select 2e308d from dual
       *
ERROR at line 1:
ORA-01426: numeric overflow


SQL> select 1.7e308d from dual;

  1.7E308D
----------
  1.7E+308



Не удивлюсь, если в процессе "изучения sys.standard" вы понаделали собственных функций и сейчас вызывается одна из них, обрезающая до размерности number.

Также интересно узнать версию ораклового клиента и sqlplus.
...
Рейтинг: 0 / 0
02.10.2020, 16:22
    #40004937
Вячеслав Любомудров
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Арифметика больших чисел в SQL (неполадки в Оракле)
НеофитSQL
Непонятно, какая из скамеек.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
SQL> select abs(1e200d) d from dual;
         D
----------
     1E126

SQL> select banner from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
PL/SQL Release 11.2.0.1.0 - Production
CORE	11.2.0.1.0	Production
TNS for 64-bit Windows: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production

SQL> select 1e200d from dual;
    1E200D
----------
     1E126

SQL> 



Возможно, где-то есть настройки которые позволяют печатать большие числа? 1е200d это больше предела NUMBER.
Возможно, проблемы с кривой версией, хотя у меня все от 10 до 19 показывают правильно (но они все не "сырые", а патченные)
...
Рейтинг: 0 / 0
02.10.2020, 16:28
    #40004939
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Арифметика больших чисел в SQL (неполадки в Оракле)
Вячеслав Любомудров,

Или standard уже поправил

Хотя тут sql-тип, не должно повлиять
...
Рейтинг: 0 / 0
02.10.2020, 16:36
    #40004942
booby
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Арифметика больших чисел в SQL (неполадки в Оракле)
env,

ты вовсе не в те двери ломишься.

он же говорил, что пользуется не sql plus.

Но виноват в том, как его клиент отображает числа в виде строк на экране,
без явно заданной форматной маски, безусловно, Oracle.
...
Рейтинг: 0 / 0
02.10.2020, 16:42
    #40004943
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Арифметика больших чисел в SQL (неполадки в Оракле)
booby
он же говорил, что пользуется не sql plus.

видимо я не правильно понял вопрос
НеофитSQL
Если серьезно, как в SQL+ показывать большие числа?
...
Рейтинг: 0 / 0
02.10.2020, 16:47
    #40004946
booby
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Арифметика больших чисел в SQL (неполадки в Оракле)
env,

строго говоря - даже sql+ всего лишь клиентская программа, опирающаяся на какие-то настройки сеанса.
По виду чисел на клиенте общего назначения я бы предлагал не судить об их содержании.
может какой-нибудь to_char(1.7e308d, 'TM9') для начала испытать...
...
Рейтинг: 0 / 0
02.10.2020, 16:49
    #40004947
Sayan Malakshinov
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Арифметика больших чисел в SQL (неполадки в Оракле)
booby
env,

ты вовсе не в те двери ломишься.

он же говорил, что пользуется не sql plus.

Но виноват в том, как его клиент отображает числа в виде строк на экране,
без явно заданной форматной маски, безусловно, Oracle.
да, он и тут наврал. Это специфическая проблема "Command window" PL/SQL Developer'a:
Код: plsql
1.
2.
3.
4.
5.
SQL> select 1e200d, to_char(1e200d,'9.99EEEE') d from dual;

    1E200D D
---------- ----------
     1E126  1.00E+200
...
Рейтинг: 0 / 0
02.10.2020, 16:50
    #40004948
НеофитSQL
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Арифметика больших чисел в SQL (неполадки в Оракле)
Вячеслав Любомудров
Возможно, проблемы с кривой версией, хотя у меня все от 10 до 19 показывают правильно (но они все не "сырые", а патченные)


Спасибо. Я теперь вижу что у меня 11.2.0.1.0, а у env .0.2.0. Надо будет обновить.

Я пользуюсь "окном командной строки" своего не-оракловского клиента, кроме него пока ничем не пользовался.
Была надежда что поскольку командная строка, то возможно клиент не сможет переврать ввод/вывод.

Какие есть еще рекомендуемые клиенты для кодеров PL/SQL?

Env интересуется, зачем мне это надо, такие больше числа.
Для работы не надо. Я заметил возможную неполадку в моей системе, и хочу привести систему в годное состояние.
Пока на повестке пропатчить и поменять клиент.
...
Рейтинг: 0 / 0
02.10.2020, 17:05
    #40004953
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Арифметика больших чисел в SQL (неполадки в Оракле)
НеофитSQL

Спасибо. Я теперь вижу что у меня 11.2.0.1.0, а у env .0.2.0. Надо будет обновить.


Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
SQL> select banner from v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
PL/SQL Release 11.2.0.1.0 - Production
CORE    11.2.0.1.0      Production
TNS for 32-bit Windows: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production

SQL> select 1e200d from dual;

    1E200D
----------
  1.0E+200

SQL>



SY.
...
Рейтинг: 0 / 0
02.10.2020, 17:05
    #40004954
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Арифметика больших чисел в SQL (неполадки в Оракле)
НеофитSQL
Я пользуюсь "окном командной строки" своего не-оракловского клиента, кроме него пока ничем не пользовался.

Попробуйте ввести в этом окне команду sqlplus
...
Рейтинг: 0 / 0
02.10.2020, 17:33
    #40004961
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Арифметика больших чисел в SQL (неполадки в Оракле)
xtender
Это специфическая проблема "Command window" PL/SQL Developer'a

Чего-то такого и ожидал.

НеофитSQL,

В следующий раз все свои "скамейка виновата" проверяйте в sqlplus. Если там повторяется - тогда пишите.
...
Рейтинг: 0 / 0
02.10.2020, 19:54
    #40005002
НеофитSQL
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Арифметика больших чисел в SQL (неполадки в Оракле)
Скамейка нашлась. Перевирал мой IDE, в sqlplus все работает как должно.

Сервер исправен, большие числа печатаются, Вояджер продолжает путь.

Ad Astra.
...
Рейтинг: 0 / 0
03.10.2020, 07:47
    #40005072
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Арифметика больших чисел в SQL (неполадки в Оракле)
... per anus
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Арифметика больших чисел в SQL (неполадки в Оракле) / 18 сообщений из 18, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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