![]() |
Модераторы: LSD |
![]() ![]() ![]() |
|
Artemon |
|
|||
а ты мне нравишься ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1771 Регистрация: 24.2.2004 Где: Челябинск Репутация: нет Всего: 20 |
Есть запрос из таблицы, который кроме прочего, возвращается также столбец rownum, в котором содержится порядковый номер строки.
Вопрос: Как это поле исключить из выборки ? Запрос примерно такой:
Но в ыборке rownum мне не нужен. -------------------- Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru |
|||
|
||||
Zloxa |
|
|||
![]() Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 37 Всего: 161 |
перечислить во внешнем подзапросе все поля выборки, опустив ненужное -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка ![]() |
|||
|
||||
Artemon |
|
|||
а ты мне нравишься ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1771 Регистрация: 24.2.2004 Где: Челябинск Репутация: нет Всего: 20 |
Проблема в том, что я заранее не знаю какие стобцы в таблице.
А этот изврат с rownum, нужен лишь для того, чтобы можно было делать выборку порциями (аналог MySql limit) -------------------- Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru |
|||
|
||||
Zloxa |
|
|||
![]() Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 37 Всего: 161 |
Просто как забава, не как решение
вроде б должно работать, если id not null Добавлено через 2 минуты и 59 секунд Да, проблемма именно в том, что вы не знаете какие столбцы в таблице. И именно эту проблему стоит решать, а не частные, вытекающие из нее последствия ![]() Если это нужно исключительно для клиенстких целей - что, в конце концов мешает отфильтрвать поле на клиенте? -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка ![]() |
|||
|
||||
Artemon |
|
|||
а ты мне нравишься ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1771 Регистрация: 24.2.2004 Где: Челябинск Репутация: нет Всего: 20 |
Это часть логики, которая нужна, но при этом порождает проблема. Первоначальное зло - это то что хваленый Oracle не имеет аналога LIMIT Это сообщение отредактировал(а) Artemon - 13.7.2011, 15:21 -------------------- Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru |
|||
|
||||
Zloxa |
|
|||
![]() Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 37 Всего: 161 |
![]() Нет.. первоначальное зло, что в MySQL нет ансишного row_number и они выкрутились лимитом, стыренным, емнип у дибиту, а вы, в свою очередь недальновидно заложили свою архитектуру на использование этой фичи. Впрочем, лимит это не самое кардинальное отличие MySQL от Оракли. )) Самое "вкусное" - не столь очевидно Это сообщение отредактировал(а) Zloxa - 13.7.2011, 19:22 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка ![]() |
|||
|
||||
Artemon |
|
|||
а ты мне нравишься ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1771 Регистрация: 24.2.2004 Где: Челябинск Репутация: нет Всего: 20 |
Это что например ? Добавлено через 2 минуты и 42 секунды
Попробуй тут заложи, когда MSSQL Server использует для ограничения вывода TOP, MySql LIMIT, Oracle - RowNumber, остальные видимо еще что-то еще. И необходимо чтобы все это поддерживалось в одном продукте. Но я конечно изголился и сделал, и даже все работает корректно, но осадок остался. -------------------- Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru |
|||
|
||||
Zloxa |
|
|||
![]() Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 37 Всего: 161 |
совершенно, в корне разные принципы обеспечения изоляции транзакций. Все коварство этой разницы заключается в том, что кривизна становится заметной только под многопользовательской нагрузкой. Я всегда говорил что адекватный технический специалист врядли станет ратовать за абстрагирование от платформы бд. Это сообщение отредактировал(а) Zloxa - 14.7.2011, 12:00 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка ![]() |
|||
|
||||
Artemon |
|
|||
а ты мне нравишься ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1771 Регистрация: 24.2.2004 Где: Челябинск Репутация: нет Всего: 20 |
Раз уж начали эту тему, не моглибы показать живой примерчик такой кривизны ? -------------------- Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru |
|||
|
||||
Zloxa |
|
|||
![]() Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 37 Всего: 161 |
Как бы классика жанра:
при конкурентном доступе в режиме изоляции read commited на блокировочниках(MS SQL,MySQL) не будет приводить к появлению дублирущися id, на версионниках (Oracle,FB,PG) - запросто. Это сообщение отредактировал(а) Zloxa - 14.7.2011, 12:00 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка ![]() |
|||
|
||||
Artemon |
|
|||
а ты мне нравишься ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1771 Регистрация: 24.2.2004 Где: Челябинск Репутация: нет Всего: 20 |
спасибо за пример
-------------------- Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru |
|||
|
||||
Artemon |
|
|||
а ты мне нравишься ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1771 Регистрация: 24.2.2004 Где: Челябинск Репутация: нет Всего: 20 |
Zloxa, можешь посоветовать литературу по видам блокировок Oracle (и желательно MySql, MSSQL) ?
-------------------- Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru |
|||
|
||||
Zloxa |
|
|||
![]() Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 37 Всего: 161 |
В том то и дело, что не блокировками одними обеспечиватесся согласованность в оракле. Основное и краеугольное отличие - чтение не блокирует запись, и, что более важно, запись не блокирует чтение. Согласованность чтений достигается тем,, что ханится история изменения данных. Именно по этому этот класс серверов и называется версионниками. Именно на этой фиче и вылез оракл. http://download.oracle.com/docs/cd/E11882_...st.htm#CNCPT020 ![]() Тут я и сам по верхам нахватамшись. Это сообщение отредактировал(а) Zloxa - 14.7.2011, 14:00 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Oracle" | |
|
Данный раздел предназначен для обсуждения проблем с Oracle Database, другие продукты Oracle здесь не обсуждаются. Просьба при создании темы, придерживаться следующих правил:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, LSD. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Oracle | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |