![]() |
|
Модераторы: LSD |
![]()
|
|
| liliputochka |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 16.3.2006 Где: Волгоград Репутация: нет Всего: нет |
Возможно ли передавать переменные в view и как (не нашла синтаксис view)? И как возможно извлекать данные из представления?
Еще вопросик: чем отличается материализованное представление от обычного? |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 18 Всего: 538 |
Syntax CREATE VIEW Данные из view извлекаются обычным select-ом. Параметризовывать view нельзя, но к выборке из view можно применять все операции применимые к таблицам (where, join и т.д.).
View - это просто сохраненный в БД запрос. По результату работы ничем не отличается, от результата который будет в результате выполнения запроса, на основе которого он составлен. Используется в целях безопасности: можно пользователю дать права только на view, а в самом view ограничить выборку данных с помощью клаузы where. Можно скрывать детали хранения данных в БД, т.е. есть возможность изменить структуру хранимых данных, при том, что для программы таблицы останутся неизменными. Материализованное представление, на самом деле это таблица, которая получается на основе некого запроса, как и view. Обладает теми же свойствами, что и обычный view, кроме одного. Данные в материализованном представлении обновляются с некоторой задержкой. Поэтому при выборке данных можно не совсем актуальные данные. Зато, данные храняться в локальной таблице, и поэтому: данные всегда доступны, даже если в выборке участвуют таблицы с удаленного сервера. Если данные получаются путем сложных расчетов и агрегирования больших объемов данных, то эти вычисления производятся только один раз, при добавлении данных в материализованное представление, а не при каждом запросе как в случае с view. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| liliputochka |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 16.3.2006 Где: Волгоград Репутация: нет Всего: нет |
еще вопросик : возможно ли использование представлений в процедурах и/или функциях и запись в представления в процедуре/функции?
|
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 18 Всего: 538 |
Да и вообще никаких ограничений на использование view в процедурах нет. Если view обновляемый, то можно. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| liliputochka |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 16.3.2006 Где: Волгоград Репутация: нет Всего: нет |
Спасибо LSD!
|
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 18 Всего: 538 |
Заходи еще
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| Paradox |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1135 Регистрация: 18.11.2002 Где: Россия Репутация: 3 Всего: 1 |
используйте лучше курсоры для этой задачи насчет материализованных представлений позволю себе дополнить LSD при создании материализованных представлений на таблицах БД, на которых строится такой view создаются логи, соответственно изменение данных в таблицах ведет дополнительные затраты на поддержку этих логов насчет задержи в актуальности данных: в зависимости от типа materialized view вы можете выставить для него опцию refresh on commit, соответтственно данные во вью сможете увидеть тогда же, когда и в обычной таблице без задержи. -------------------- --- |
|||
|
||||
| jsa |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 704 Регистрация: 19.1.2006 Где: Новосибирск Репутация: 1 Всего: 20 |
как то не так давно, в форуме по интербейзу, если не ошибаюсь Акела, предлагал способ параметризировать вьюхи, относительно оракла можно попробовать использовать контекст сеанса, для задания параметра, но это только теория -------------------- Все мы, на перине с песней, строим небо на земле © Ю. Шевчук |
|||
|
||||
| 3x3 |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 261 Регистрация: 17.9.2006 Репутация: 2 Всего: 8 |
Почему? И практика тоже. Я бы порекомендовал использовать для этого переменную уровня пакета. Это может быть оправданно, если реализуется политика разделения доступа, основанная не на оракловой авторизации. Но.. Без нужды не стоит злоупореблядь такими вью.. Да и с назначалкой дескриптора доступа нужно ещё извернуться так, что бы пользователь не мог сам себе ID назначать, например не давать прямого пути её назначить, только посредством вызова процедуры, которой передаётся юзернейм и пассворд. -------------------- Зачем платить больше, когда можно заплатить дважды? |
||||
|
|||||
![]()
|
| Правила форума "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. |