Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Cортировка цыфр и слов в Oracle 
V
    Опции темы
Andy_L20066
Дата 26.5.2010, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 10.3.2008

Репутация: 1
Всего: 1



привет, 

Имеются такие данные (тип VARCHAR): 123, aaa, bbb. Если я сортирую их таким образом: SELECT FROM TABLE ORDER BY NAME ASC то соответсвенно 123 помещается в конец... тоесть результат таков: aaa, bbb, 123..... мне нужно чтобы последовательность была другой: 123, aaa, bbb

У меня Оракл 10-й версии, но я думаю что версия базы данных тут ни к чему.

Спасибо 
PM MAIL ICQ   Вверх
Zloxa
Дата 26.5.2010, 21:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 37
Всего: 161



Цитата(Andy_L20066 @  26.5.2010,  19:04 Найти цитируемый пост)
чтобы последовательность была другой: 123, aaa, bbb

что больше 2 или 10?



--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
Zloxa
Дата 26.5.2010, 21:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 37
Всего: 161



Код

SQL> alter session set nls_sort = 'russian';
 
Session altered
SQL> select * from (
  2  select 'sss' from dual
  3  union all select 'ёёёё' from dual
  4  union all select '000' from dual
  5  )
  6  order by 1;
 
'SSS'
-----
sss
ёёёё
000
SQL> alter session set nls_sort = 'binary';
 
Session altered
SQL> select * from (
  2  select 'sss' from dual
  3  union all select 'ёёёё' from dual
  4  union all select '000' from dual
  5  )
  6  order by 1;
 
'SSS'
-----
000
sss
ёёёё
 



--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
Andy_L20066
Дата 27.5.2010, 11:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 10.3.2008

Репутация: 1
Всего: 1



если взять во внимание '2' и '10', то последовательность должна быть такой: 10, 123, 2, aaa, bbb

PM MAIL ICQ   Вверх
Zloxa
Дата 27.5.2010, 11:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 37
Всего: 161



Цитата(Andy_L20066 @  27.5.2010,  11:10 Найти цитируемый пост)
должна быть

тогда binary sort должен помочь.


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
Andy_L20066
Дата 27.5.2010, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 10.3.2008

Репутация: 1
Всего: 1



спасибо большое за подсказку... мне просто вот надо синхронизировать сортинг в джаве и в оракле... вроде как получается... а как вот доступится к таблице session, можно как-то посмотреть ее контент.... SELECT * FROM session говорит что имя таблицы неправильное?
PM MAIL ICQ   Вверх
Zloxa
Дата 27.5.2010, 12:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 37
Всего: 161



это не таблица

Добавлено через 35 секунд
команда alter session set  устанавливает переменные сессии


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
Andy_L20066
Дата 27.5.2010, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 10.3.2008

Репутация: 1
Всего: 1



я думал это какая нибуть системная табличка....хорошо а можно както пересмотреть параметры сессии? по любому что то там дифолтное валяется, если ничено не устанавливать?
PM MAIL ICQ   Вверх
Zloxa
Дата 27.5.2010, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 37
Всего: 161



Цитата(Andy_L20066 @  27.5.2010,  12:55 Найти цитируемый пост)
а можно както пересмотреть параметры сессии?

если врдуг нароешь - поделись, мне тоже интересно
начальные параметры сессии можно посмотреть во вьюхе v$parameter
А вот фактически действующие.... хз  smile 
потому как жыдибиси или кто другой может запросто устанавливать самостоятельно какието параметры сессии уже постле того, как сессия инициализирована этими значениями.

Это сообщение отредактировал(а) Zloxa - 27.5.2010, 13:14


--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
Andy_L20066
Дата 27.5.2010, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 10.3.2008

Репутация: 1
Всего: 1



select * from NLS_DATABASE_PARAMETERS
вроде как показует параметры.. но вот не знаю, помоему - это всеравно дефолтные параметры, тоесть если ти что то меняешь, запрос одно и то же возвращает всегда
PM MAIL ICQ   Вверх
Zloxa
Дата 27.5.2010, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Чо?
****


Профиль
Группа: Завсегдатай
Сообщений: 3473
Регистрация: 12.9.2008

Репутация: 37
Всего: 161



Цитата(Andy_L20066 @  27.5.2010,  15:15 Найти цитируемый пост)
NLS_DATABASE_PARAMETERS

не то
nls_sort показывает одинаковый а сортирует по разному
Код

alter session set nls_sort = 'russian';
 
Session altered
select * from NLS_DATABASE_PARAMETERS where parameter = 'NLS_SORT';
 
PARAMETER                      VALUE
------------------------------ ----------------------------------------
NLS_SORT                       BINARY
select * from (
 select 'sss' from dual
 union all select 'ёёёё' from dual
 union all select '000' from dual
 )
 order by 1;
 
'SSS'
--------------------------------
sss
ёёёё
000
alter session set nls_sort = 'binary';
 
Session altered
select * from NLS_DATABASE_PARAMETERS where parameter = 'NLS_SORT';
 
PARAMETER                      VALUE
------------------------------ ----------------------------------------
NLS_SORT                       BINARY
select * from (
 select 'sss' from dual
 union all select 'ёёёё' from dual
 union all select '000' from dual
 )
 order by 1;
 
'SSS'
--------------------------------
000
sss
ёёёё



--------------------
Достоверно известно, что 89% людей доверяют статистике взятой с потолка smile
PM   Вверх
Andy_L20066
Дата 27.5.2010, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 10.3.2008

Репутация: 1
Всего: 1



SELECT * from NLS_SESSION_PARAMETERS;

вроде показывает
PM MAIL ICQ   Вверх
ToshaCh
Дата 28.5.2010, 17:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 555
Регистрация: 10.11.2005
Где: Москва, РФ

Репутация: 12
Всего: 26



Цитата(Zloxa @  27.5.2010,  13:13 Найти цитируемый пост)
если врдуг нароешь - поделись, мне тоже интересно начальные параметры сессии можно посмотреть во вьюхе v$parameter А вот фактически действующие.... хз   

Фактические можно посмотреть точно таким же методом, но черз ж.. есть нюанс.

Код

SYS@ AS SYSDBA> set linesize 100;
SYS@ AS SYSDBA> col name format a30;
SYS@ AS SYSDBA> col value format a40;
SYS@ AS SYSDBA> select name,value from v$parameter where name = 'sort_area_size';

NAME                   VALUE
------------------------------ ----------------------------------------
sort_area_size               65536

SYS@ AS SYSDBA> alter session set sort_area_size=100000;

Session altered.

SYS@ AS SYSDBA> select name,value from v$parameter where name = 'sort_area_size';

NAME                   VALUE
------------------------------ ----------------------------------------
sort_area_size               100000

SYS@ AS SYSDBA> select name,value from v$parameter where name = 'nls_sort';

NAME                   VALUE
------------------------------ ----------------------------------------
nls_sort

SYS@ AS SYSDBA> select parameter,value from nls_session_parameters where parameter='NLS_SORT';

PARAMETER               VALUE
------------------------------ ----------------------------------------
NLS_SORT               BINARY

SYS@ AS SYSDBA> alter session set nls_sort='russian';

Session altered.

SYS@ AS SYSDBA> select name,value from v$parameter where name = 'nls_sort';

NAME                   VALUE
------------------------------ ----------------------------------------
nls_sort

SYS@ AS SYSDBA> select parameter,value from nls_session_parameters where parameter='NLS_SORT';

PARAMETER               VALUE
------------------------------ ----------------------------------------
NLS_SORT               RUSSIAN


NLS настройки в общем случае зависят от многих вещей. В частности от окружения клиента, поэтому данные v$parameter относительно NLS показывают не то. Похоже они отрабатывают источник информации связанные с форком оракловой сессии на сервере. Однако фактические значения NLS отрабатываются через клиента. И индусы, по древней индуской традиции, вместо того чтобы подчинить одну вьюху сделали другую smile 

Цитата(Zloxa @  27.5.2010,  13:13 Найти цитируемый пост)
начальные параметры сессии можно посмотреть во вьюхе v$parameter

Так написано в официальной документации. Но если порыть металинк, то можно обнаружить несколько ноток, которые говорят о динамическом характере v$parameter начиная с 8i. Похоже, что те кто писал документацию тренировались на NLS_SORT, а те кто нотки на металинке на чем-нить другом. 

Это сообщение отредактировал(а) ToshaCh - 28.5.2010, 17:50


--------------------
Slackware 12.2 | Linux 2.6.27 | Fluxbox 1.1.1 | Wmii 3 | Opera 9.63 
--
Oracle это не только способ отмывания денег, но и вполне себе преличная база данных.
PM MAIL Jabber   Вверх
ToshaCh
Дата 28.5.2010, 18:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 555
Регистрация: 10.11.2005
Где: Москва, РФ

Репутация: 12
Всего: 26



Изначальные настройки, кстати, можно посмотреть через v$system_parameter и v$spparameter. Но наличие v$system_parameter2, v$system_parameter4 и ещё кучи подобных несколько напрягает.

Это сообщение отредактировал(а) ToshaCh - 28.5.2010, 18:05


--------------------
Slackware 12.2 | Linux 2.6.27 | Fluxbox 1.1.1 | Wmii 3 | Opera 9.63 
--
Oracle это не только способ отмывания денег, но и вполне себе преличная база данных.
PM MAIL Jabber   Вверх
Andy_L20066
Дата 29.5.2010, 21:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 177
Регистрация: 10.3.2008

Репутация: 1
Всего: 1



Cпасибо всем, закрываю вопрос
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Oracle"
Zloxa
LSD

Данный раздел предназначен для обсуждения проблем с Oracle Database, другие продукты Oracle здесь не обсуждаются. Просьба при создании темы, придерживаться следующих правил:

  • при создании темы давайте ей осмысленное название, описывающее суть проблемы
  • указывайте используемую версию базы, способ соединения и язык программирования
  • при ошибках обязательно приводите код ошибки и сообщение сервера
  • приводите код в котором возникла ошибка, по возможности дайте тестовый пример демонстрирующий ошибку
  • при вставке кода используйте соответсвующие теги: [code=sql] [/code] для подсветки SQL и PL/SQL кода, [code=java] [/code] - для Java, и т.д.

  • документация по Oracle: 9i, 10g, 11g
  • книги по Oracle можно поискать здесь
  • действия модераторов можно обсудить здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, LSD.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Oracle | Следующая тема »


 




[ Время генерации скрипта: 0.0608 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.