- Идентификатор определен в текущем блоке
- Идентификатор определен в блоке который родительском блоке
- Одиночный объект в базе данных (Таблица, представление) или PL/SQL объект в вашей схеме
- Одиночный объект в базе данных (Таблица, представление) или PL/SQL объект на который у Вас есть привилегии
- Индексная переменная цикла
Поиск по этому блогу
понедельник, 31 января 2011 г.
Классификация идентификаторов в зависимости от их "Видимости"
Основные нововведения в PL/SQL в зависимости от версий
| Версия | Основные отличия |
|---|---|
| 9.1 |
|
| 9.2 | Основной акцент сделан на поддержку XML, но кроме того появились такие важные вещи как ассоциативные массивы,добавлена возможность производить вставку в таблицу используя данные из записей.Также появился такой мощный пакет как UTL_FILE. |
| 10.1 | Для разработчиков главным нововведение является появление предупреждений "Предупреждений времени компиляции" |
| 10.2 | Появление синтаксиса для "управления" препроцессором , что дало возможность компиляции части кода в зависимости от логического условия Появление возможности моделирования: появился диалект Oracle SQL MODEL |
| 11.1 -11.2 |
|
среда, 12 января 2011 г.
Аналитические функции в Oracle. Часть 1
Давайте разберем аналитические функции.
Для начала, тезисно пару слов о самих аналитических функциях:Процесс выполнения запроса в Оракле, содержащий аналитические функции выполняется в 3 этапа
- Выполняются все соединения(JOIN),условия содержащиеся в WHERE,GROUP BY и HAVIG
- Теперь для результирующего множества доступны аналитические функции, на котором они собственно и выполняются
- Если запрос содержит сортировку, то выполнятся условия из ORDER BY
Давайте более подробно разберем 2-ой этап, а именно работу аналитических функций.
Эти функции дают разработчику разбить результат запроса на подгруппы, которые называются партициями.Обращаю внимание на то что эти партиции не имею ни какого отношения к партициям которые создаются для таблиц на "Физическом" уровне.
Партиции формируются после выполнения группировок GROUP BY, по-этому для них доступны такие агрегатные функции,как сумма или среднее.
Для каждой партиции, разработчик может определить "скользящее окно данных"(Window).
Эти окна необходимы для определения массива строк по которым будет вычисляется значение в текущей строке.
Окно может содержать все строки партиции, или какую то одну или несколько строк в партиции, которые определяются логическими условиями. Следует помнить о том что когда производятся вычисления в "оконных функциях" результирующая строка тоже учитывается.
Перед началом разбора на примерах самих аналитических функций давай определим нашу тестовую предметную область.
Пускай у нас есть таблица anl_incom_lpm, которые содержит данные о неких участниках, которые зарегистрировавшийся в определенном магазине и получили некие дисконтные карты, которые им дают возможность получать скидки в магазинах розничной сети.
и так приведем структуру нашей таблицы
CREATE TABLE anl_incom_lpm (
member_row_id varchar2(15), -- уникальный идентификатор участника
member_reg_store varchar2(4), -- идентификатор точки регистрации (торговой точки)
member_created date, -- дата регистрации
points_count number -- количество "скидочных" баллов на карточке
)
Наконец перейдем к описанию самих аналитических функций
Перед началом разбора на примерах самих аналитических функций давай определим нашу тестовую предметную область.
Пускай у нас есть таблица anl_incom_lpm, которые содержит данные о неких участниках, которые зарегистрировавшийся в определенном магазине и получили некие дисконтные карты, которые им дают возможность получать скидки в магазинах розничной сети.
и так приведем структуру нашей таблицы
CREATE TABLE anl_incom_lpm (
member_row_id varchar2(15), -- уникальный идентификатор участника
member_reg_store varchar2(4), -- идентификатор точки регистрации (торговой точки)
member_created date, -- дата регистрации
points_count number -- количество "скидочных" баллов на карточке
)
Наконец перейдем к описанию самих аналитических функций
Подписаться на:
Сообщения (Atom)