Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / SQL Developer: неправильная сортировка Римских чисел с точкой (VI.I) / 20 сообщений из 20, страница 1 из 1
09.11.2017, 17:02
    #39550396
exp98
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL Developer: неправильная сортировка Римских чисел с точкой (VI.I)
Версия SQL Developer
Versioning 4.2.0.17.089.1709
Build 17.089.1709

Ясно, как должно быть, и есть подозрение, что можно подрегулировать числовыми или региональными настройками на время выполнения запроса.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
select 'V. я' as n  from dual union all
    select 'VI.I я' as n  from dual union all
    select 'VI.II я' as n  from dual union all
    select 'VII. я'as n from dual union all
    select 'VIII. я' as n  from dual 
order by n
----------ответ
V. я
VI.I я
VII. я
VI.II я
VIII. я

Причём в реальном запросе (там в сортировке этот столбец второй) - и там 7-ка вообще раньше 6-ки
В ТОАДе всё ОК, и в нём удобнее, но у меня сейчас к Девелоперу доступ проще.

Не хочется тащить order_index в конечный резалт, что можно подрегулировать ?
...
Рейтинг: 0 / 0
09.11.2017, 17:41
    #39550429
Vadim Lejnin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL Developer: неправильная сортировка Римских чисел с точкой (VI.I)
exp98,
в oracle нет встроенного типа римские числа, поэтому идет сортировка как строк
порядок сортировки символов строк регулируется параметром
NLS_SORT, который, если явно не установлен, зависит от настройки NLS_TERRITORY
toad использует настройки Oracle Client, SQL*Developer настройки java, которая тянет эти настроки из системы.

авторПричём в реальном запросе (там в сортировке этот столбец второй) - и там 7-ка вообще раньше 6-ки
В ТОАДе всё ОК, и в нём удобнее, но у меня сейчас к Девелоперу доступ проще.


не верю, покажи результат, бо здесь используется банальный ASCII7, и разницы сортировки быть не должно
...
Рейтинг: 0 / 0
09.11.2017, 17:45
    #39550435
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL Developer: неправильная сортировка Римских чисел с точкой (VI.I)
Тебе только кажется, что это числа. А предположение о "сортируемости" римского числа как строки выдаёт владение счётом на уровне первого класса.
...
Рейтинг: 0 / 0
09.11.2017, 17:52
    #39550442
orawish
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL Developer: неправильная сортировка Римских чисел с точкой (VI.I)
exp98,

попробуйте тынц допилить до желаемого
...
Рейтинг: 0 / 0
09.11.2017, 17:53
    #39550443
AmKad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL Developer: неправильная сортировка Римских чисел с точкой (VI.I)
NLSSORT c union all без inline view не работает?
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
column n format a30

with s as (
select 'v. я' as n  from dual union all
    select 'vi.i я' as n  from dual union all
    select 'vi.ii я' as n  from dual union all
    select 'vii. я'as n from dual union all
    select 'viii. я' as n  from dual )
select *
from s
order by  nlssort(n, 'NLS_SORT=BINARY');

N
------------------------------
v. я
vi.i я
vi.ii я
vii. я
viii. я


select 'v. я' as n  from dual union all
    select 'vi.i я' as n  from dual union all
    select 'vi.ii я' as n  from dual union all
    select 'vii. я'as n from dual union all
    select 'viii. я' as n  from dual
order by n;

N
------------------------------
v. я
vi.i я
vii. я
vi.ii я
viii. я


select 'v. я' as n  from dual union all
    select 'vi.i я' as n  from dual union all
    select 'vi.ii я' as n  from dual union all
    select 'vii. я'as n from dual union all
    select 'viii. я' as n  from dual
order by nlssort(n, 'NLS_SORT=BINARY');
order by nlssort(n, 'NLS_SORT=BINARY')
              *
ошибка в строке 6:
ORA-01785: аргумент ORDER BY должен быть номером выражения SELECT-списка

...
Рейтинг: 0 / 0
09.11.2017, 17:54
    #39550446
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL Developer: неправильная сортировка Римских чисел с точкой (VI.I)
Vadim Lejninв oracle нет встроенного типа римские числа

DocID 236825.1
...
Рейтинг: 0 / 0
09.11.2017, 18:17
    #39550463
Vadim Lejnin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL Developer: неправильная сортировка Римских чисел с точкой (VI.I)
andrey_anonymous,

Классно! не знал, спасибо
...
Рейтинг: 0 / 0
09.11.2017, 18:26
    #39550470
exp98
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL Developer: неправильная сортировка Римских чисел с точкой (VI.I)
AmKad NLSSORT c union all без inline view не работает?
Да, тоже ORA-01785.

У Девелопера не только точка. Так же точно он и цифру вместо точки, и '_' вместо неё тоже. Это я уже после поста проверил.

Всё равно спасибо посмотрю варианты, успокаивает, что на рабочей базе будет через Клиента работать (Vadim Lejnin ). Если что, то подтяну order_index.

Vadim Lejnin , не верите? см. картинку

На этот раз Элик сел в лужу (тоже ведь скажет, что сел в машину, а не в лужу ...)
...
Рейтинг: 0 / 0
09.11.2017, 18:33
    #39550476
exp98
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL Developer: неправильная сортировка Римских чисел с точкой (VI.I)
По поводу ссылки DocID 236825.1

Пожалуйста, научите, как это превратить в ссылку для браузера.
...
Рейтинг: 0 / 0
09.11.2017, 18:41
    #39550483
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL Developer: неправильная сортировка Римских чисел с точкой (VI.I)
exp98По поводу ссылки DocID 236825.1

Пожалуйста, научите, как это превратить в ссылку для браузера.
1. Получить у ответственного в Вашей организации доступ на support.oracle.com
2. Вбить указанный идентификатор документа в строку поиска

К сожалению, публикация этих документов здесь запрещена как вендором, так и правилами форума.
...
Рейтинг: 0 / 0
09.11.2017, 18:49
    #39550488
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL Developer: неправильная сортировка Римских чисел с точкой (VI.I)
exp98У Девелопера не только точка. Так же точно он и цифру вместо точки, и '_' вместо неё тоже. Это я уже после поста проверил.

Всё равно спасибо посмотрю варианты, успокаивает, что на рабочей базе будет через Клиента работать (Vadim Lejnin ). Если что, то подтяну order_index.

Vadim Lejnin , не верите? см. картинку

На этот раз Элик сел в лужу (тоже ведь скажет, что сел в машину, а не в лужу ...)

1. NLSSORT работает по-разному в зависимости от NLS-окружения. Да, пунктуация в некоторых окружениях вся собрана в кучу.
И нет, это не свойство клиента или приложения - просто они у вас работают с разным NLS-окружением.
Подробнее - в Globalization Support Guide

2. И что на картинке?
Полагаете, что VI в самом деле должна следовать за VII?
VII
VI
VIII

3. А вот про Elic напрасно - он, в отличие от Вас, тему NLS знает вдоль и поперек.
...
Рейтинг: 0 / 0
09.11.2017, 18:49
    #39550490
exp98
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL Developer: неправильная сортировка Римских чисел с точкой (VI.I)
Ясно.
...
Рейтинг: 0 / 0
09.11.2017, 19:03
    #39550502
exp98
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL Developer: неправильная сортировка Римских чисел с точкой (VI.I)
andrey_anonymous,
я предполагал другое, что сортировка не выкидывает символы. А с выкидышами всё логично.

Про Элика я прав, если это не было тонким тролингом с его стороны. Надеюсь, от него не убудет.
...
Рейтинг: 0 / 0
09.11.2017, 19:26
    #39550517
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL Developer: неправильная сортировка Римских чисел с точкой (VI.I)
exp98Про Элика я прав, если это не было тонким тролингом с его стороны.
Ну попробуйте его опровергнуть, вот Вам набор данных:
Код: plsql
1.
2.
3.
with t as (select rownum N, to_char(r,'RN') RN from dual connect by level < 1000)
select * from t 
order by rn
...
Рейтинг: 0 / 0
09.11.2017, 20:51
    #39550550
exp98
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL Developer: неправильная сортировка Римских чисел с точкой (VI.I)
andrey_anonymous,
я не собирался развивать тему Маэстро ... Я знаю, что не читал оракловых подробностей о сортировке, я много чего не читал и даже не подозреваю о существовнии. Ваш пример опровергнуть наверное не получится.

Спасибо всем за разъяснения и уделённое мне время.

Всё ниже промелькнуло в башке мгновенно, после чего я и вынес тот свой вердикт, можно не читать.
Чтобы положить спору конец, рассмотрим фразу буквально:
"Тебе только кажется, что это числа. А предположение о "сортируемости" римского числа как строки выдаёт владение счётом на уровне первого класса."

1-е предложение, прочтённое буквально, неверно, мне это не казалось ни мгновения.
2-е предложение в наиболее непротиворечивой интерпретации:
посылка а) я предполагаю, что речь идёт римских числах. Неверно, см. выше.

посылка б) речь о сортировке числа(?) как строки, и я так предполагал. Из этого почему-то сделан вывод о не владении счётом, хоть арабским, хоть римским, хоть ... р-адическим. Таки я не предполагал, что речь идёт о числах, хоть каких. Снова, как Вы поняли, неверный вывод. Что я писал про числовые настройки, я имел ввиду сугубо точку в качестве разделителя для обычной десятичной записи, и что вдруг это как-то сказывается.

И вообще причём здесь какой-то счёт?

посылка в)
Единственное рациональное зерно во 2-м предложении, с т.зр. моего незнания темы , могло заключаться в том, что оракле, встречая в поле VI.I, проявляет "умничание", и что это поведение связано с NLS. И что это поведение имелось ввиду между строк. Но и в этом случае, вывод о владении счётом чрезвычайно завауалированно связан с намёком. И опять же, причём здесь счёт?

Т.о. фраза в целом является "навозной кучей", копаться в к-рой можно лишь при желании непременно найти жемчужное зерно и при уверенности, что оно там действительно было. Но коль скоро Маэстро дйствительно имел ввиду именно это и одновременноименно так оценивал мои знания, то вот вопрос, в какой же срок он оценивал длительность моего копания?

Исходя из достаточно большого для маленькой фразы кол-ва неудачных посылок, я мгновенно решил, что искать глубинный смысл не стоило (а теперь уже и не нужно), и моё обоснованое замечание по сравнению с предположительными "предположениями" Маэстро обо мне, выглядит вполне невинно и очевидной шуткой. Попробуйте опровергнуть.

А стоило ли искать глубинный смысл, знает только автор, но рассчитывать на правду маловероятно, и в культурном сообществе лучше эту тему не продолжать.
ИМХО
...
Рейтинг: 0 / 0
10.11.2017, 10:08
    #39550721
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL Developer: неправильная сортировка Римских чисел с точкой (VI.I)
Vadim Lejninandrey_anonymous,

Классно! не знал, спасибо

что за числа?

знал токо месяц и "год" (rm/rn)

ps
счас доступ на металинк для меня закрыли

....
stax
...
Рейтинг: 0 / 0
10.11.2017, 10:21
    #39550738
SQL Developer: неправильная сортировка Римских чисел с точкой (VI.I)
Staxсчас доступ на металинк для меня закрыли
Я бы и сюда тебе доступ закрыл.
...
Рейтинг: 0 / 0
10.11.2017, 10:48
    #39550768
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL Developer: неправильная сортировка Римских чисел с точкой (VI.I)
Просто требStaxсчас доступ на металинк для меня закрыли
Я бы и сюда тебе доступ закрыл.

к етому все идет, не долго осталось

.....
stax
...
Рейтинг: 0 / 0
10.11.2017, 13:36
    #39550954
Вячеслав Любомудров
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL Developer: неправильная сортировка Римских чисел с точкой (VI.I)
StaxVadim Lejninandrey_anonymous,

Классно! не знал, спасибо

что за числа?

знал токо месяц и "год" (rm/rn)

ps
счас доступ на металинк для меня закрыли

....
staxА там как раз про год и идет
Твое сообщение тринадцатилетней давности работа с датами

Ну и обратная функция чуток другая
...
Рейтинг: 0 / 0
10.11.2017, 13:49
    #39550971
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SQL Developer: неправильная сортировка Римских чисел с точкой (VI.I)
Вячеслав ЛюбомудровА там как раз про год и идет
Твое сообщение тринадцатилетней давности работа с датами

Ну и обратная функция чуток другая

спасибо

но ето не совсем встроенный тип

.....
stax
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / SQL Developer: неправильная сортировка Римских чисел с точкой (VI.I) / 20 сообщений из 20, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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