Oracle 9i 이상에서 지원 됩니다.
-- Unconditional insert into ALL tables
INSERT
ALL
INTO
sal_history VALUES(empid,hiredate,sal)
INTO
mgr_history VALUES(empid,mgr,sysdate)
SELECT
employee_id EMPID, hire_date HIREDATE, salary SAL, manager_id MGR
FROM
employees WHERE employee_id > 200;
-- Pivoting insert to split non-relational
data
INSERT
ALL
INTO
Sales_info VALUES (employee_id,week_id,sales_MON)
INTO
Sales_info VALUES (employee_id,week_id,sales_TUE)
INTO
Sales_info VALUES (employee_id,week_id,sales_WED)
INTO
Sales_info VALUES (employee_id,week_id,sales_THUR)
INTO
Sales_info VALUES (employee_id,week_id, sales_FRI)
SELECT
EMPLOYEE_ID, week_id, sales_MON, sales_TUE,
sales_WED, sales_THUR,sales_FRI
FROM
Sales_source_data;
-- Conditionally insert into ALL
tables
INSERT
ALL
WHEN
SAL>10000 THEN
INTO
sal_history VALUES(EMPID,HIREDATE,SAL)
WHEN
MGR>200 THEN
INTO
mgr_history VALUES(EMPID,MGR,SYSDATE)
SELECT
employee_id EMPID, hire_date HIREDATE, salary SAL, manager_id MGR
FROM
employees WHERE employee_id > 200;
-- Insert into the FIRST table with a matching
condition
INSERT
FIRST
WHEN SAL
> 25000 THEN
INTO
special_sal VALUES(DEPTID,SAL)
WHEN
HIREDATE like ('%00%') THEN
INTO
hiredate_history_00 VALUES(DEPTID,HIREDATE)
WHEN
HIREDATE like ('%99%') THEN
INTO
hiredate_history_99 VALUES(DEPTID,HIREDATE)
ELSE
INTO hiredate_history VALUES(DEPTID, HIREDATE)
SELECT
department_id DEPTID, SUM(salary) SAL,
MAX(hire_date) HIREDATE
FROM
employees GROUP BY department_id;
'데이터베이스 > 오라클' 카테고리의 다른 글
오라클에서 결과를 커서로 넘길테 테스트 방법 (0) | 2013.11.12 |
---|---|
[펌] 유용한 오라클 쿼리 정리 (0) | 2011.03.07 |
오라클 정규식 사용 팁 (0) | 2010.11.05 |
Protected: Presentation Scripts (0) | 2010.09.29 |
Oracle DBA Scripts and Tips (0) | 2010.09.28 |