Это позволяет «нанизывать» такие функции друг на друга
и организовывать конвейер преобразования данных.
Новый SQL-оператор Merge и новый многотабличный
синтаксис оператора Insert облегчают шаг Loading. Оператор Merge – реализация
стандартной для хранилищ данных операции UPSERT, предназначенной для решения
задач типа «если продажи в данном регионе уже были – увеличить сумму продаж
(Update) по коду региона, если не было – вставить строку с кодом и суммой
продаж (Insert)». Например (используем уже упоминавшиеся таблицы Sales и
Regions):
Создадим суммарную таблицу продаж по регионам:
create
table Sales_sum (region_id number, sum_amount number);
|
Внесем в нее данные о продажах за последние сутки:
merge into sales_sum SS
using (select region_id, amount
from sales where sal_date>sysdate-1) S
on (SS.region_id=S.region_id)
when matched then -- продажи по региону уже были
update set
SS.sum_amount=SS.sum_amount+S.amount
when not matched then -- первая продажа в данном регионе
insert (SS.region_id, SS.sum_amount)
values (S.region_id, S.amount);
|
Многотабличный Insert позволяет одним оператором
вставить строки сразу в несколько таблиц, причем можно задавать условия вставки
строки для каждой таблицы. Например, при переносе данных о продажах в архив
требуется отдельно учитывать особо крупные сделки.
Создадим таблицы для архивных данных и крупных сделок:
create
table sales_arch as select * from sales where 0=1;
create
table super_sales as select * from sales where 0=1;
|
Перенесем данные:
insert
all
when amount>100000
then into super_sales values (id, region_id, product_id, amount, sal_date)
when 1=1
then into sales_arch values (id, region_id, product_id, amount, sal_date) Рекомендуем скачать другие рефераты по теме: налоги в россии, сочинение.
Предыдущая страница реферата | 1
2
3
4
5
6
7
8
9
10
11 | Следующая страница реферата
|
|