insert into tbl(col1, col2, col3)
with alias_x as (
select 'a1', 'a2', 'a3' as col3 from dual union all
select 'b1', 'b2', 'b3' as col3 from dual union all
select 'c1', 'c2', 'c3' as col3 from dual union all
select 'd1', 'd2', 'd3' as col3 from dual
)
select * from alias_x
where col3 like 'c%';
INSERT ALL
INTO TBL(COL1, COL2, COL3) VALUES('a1', 'a2', 'a3')
INTO TBL(COL1, COL2, COL3) VALUES('b1', 'b2', 'b3')
INTO TBL(COL1, COL2, COL3) VALUES('c1', 'c2', 'c3')
INTO TBL(COL1, COL2, COL3) VALUES('d1', 'd2', 'd3')
SELECT 1 FROM DUAL;
각각 row에서 테이블을 지정한다.
INSERT ALL
INTO TBL(COL1, COL2, COL3) VALUES('a1', 'a2', 'a3')
INTO TBL(COL1, COL2, COL3) VALUES('b1', 'b2', 'b3')
INTO TBL2(COL1, COL2, COL3) VALUES('c1', 'c2', 'c3')
INTO TBL3(COL1, COL2, COL3) VALUES('d1', 'd2', 'd3')
SELECT 1 FROM DUAL;
INSERT ALL
INTO TBL1(COL1, COL2, COL3) VALUES(COL1, COL2, COL3)
INTO TBL2(COL1, COL2, COL3) VALUES(COL1, COL2, COL3)
INTO TBL3(COL1, COL2) VALUES(COL1, COL2, COL3)
INTO TBL4(COL1) VALUES(COL1, COL2)
WITH ALIAS_X AS (
select 'a1' as col1, 'a2' as col2, 'a3' as col3 from dual union all
select 'b1' as col1, 'b2' as col2, 'b3' as col3 from dual union all
select 'c1' as col1, 'c2' as col2, 'c3' as col3 from dual union all
select 'd1' as col1, 'd2' as col2, 'd3' as col3 from dual
) SELECT * FROM ALIAS_X;
INSERT ALL
WHEN 1=1 THEN
INTO TBL1(COL1, COL2, COL3) VALUES(COL1, COL2, COL3)
WHEN COL3 IS NOT NULL THEN
INTO TBL2(COL1, COL2, COL3) VALUES(COL1, COL2, COL3)
WHEN COL3 IS NULL THEN
INTO TBL3(COL1, COL2) VALUES(COL1, COL2, COL3)
INTO TBL4(COL1) VALUES(COL1, COL2)
WITH ALIAS_X AS (
select 'a1' as col1, 'a2' as col2, 'a3' as col3 from dual union all
select 'b1' as col1, 'b2' as col2, 'b3' as col3 from dual union all
select 'c1' as col1, 'c2' as col2, 'c3' as col3 from dual union all
select 'd1' as col1, 'd2' as col2, 'd3' as col3 from dual
) SELECT * FROM ALIAS_X;