Pivoting insert: In your Datawarehouse we come across situations where non-relational data has to be stored in a relational format .Here we can use the pivoting insert statement. When we have data as empid,weekid,sales_mon,sales_tues,sales_wed,...etc. We can use in a more relational format in a table as empid,week,sales columns. So pivoting is an operation in which one has to build a transformation such that each record from any input stream, such as a non-relational database table, must be converted into multiple records for a more relational database format.
EX: We have source table as sales_source
SQL> create table sales_source (empno number(5), weekid number(2),sales_m number(8,2),sales_tu number(8,2),sales_w number(8,2),sales_th number(8,2), sales_f number(8,2));
Table created.
In your data warehouse, you would want to store the records in a more typical relational form in a fact table sales_info
SQL> create table sales_info (empid number(6), week number(2),SALES NUMBER(8,2));
Table created.
SQL> insert into sales_source values(176,6,2000,3000,1000,5000,6000);
1 row created.
SQL> insert all into sales_info values(employid,weekid,sales_mon)
into sales_info values(employid,weekid,sales_tu)
into sales_info values(employid,weekid,sales_wed)
into sales_info values(employid,weekid,sales_th)
into sales_info values(employid,weekid,sales_f)
select empno employid,weekid weekid,sales_m sales_mon,
sales_tu sales_tu,sales_w sales_wed,sales_th sales_th,sales_f sales_f from sales_source;
5 rows created.
SQL> select * from sales_info;
EMPID WEEK SALES
---------- ---------- ----------
176 6 2000
176 6 3000
176 6 1000
176 6 5000
176 6 6000