-- pl_test 테이블 생성
create table pl_test
(no number,
name varchar2(10));
-- pl_seq 시퀀스 생성
create sequence pl_seq;
-- pl_test에 값을 insert하는 pl/sql문
begin
insert into pl_test
values(pl_seq.nextval,'bbb');
end;
SET VERIFY off;
-- 사용자값을 입력 받기 전의 pl/sql문과
-- 입력받은 값을 대입한 후의 pl/sql문을 출력창에 표출할지 여부
-- off 이므로 출력하지 않는다
-- pl_test2 테이블 생성
create table pl_test2( no number,
name varchar2(10),
addr varchar2(10));
-- no, name, addr 사용자 값을 입력받아 insert하는 pl/sql문
DECLARE
v_no number := '&no';
v_name number := '&name';
v_addr number := '&addr';
BEGIN
insert into pl_test2
values(v_no, v_name, v_addr);
END;
select * from pl_test2;
-- update
BEGIN
UPDATE pl_test
set name = 'bbb'
where no = 2;
END;
-- delete
BEGIN
delete from pl_test
where no=1;
end;
○ merge
-- pl_merge1 테이블 생성
create table pl_merge1
( no number,
name varchar2(10));
-- pl_merge2 테이블 생성
create table pl_merge2
as select * from pl_merge1;
insert into pl_merge1 values (1,'aaa');
insert into pl_merge1 values (2,'bbb');
insert into pl_merge2 values (1,'ccc');
insert into pl_merge2 values (3,'ddd');
-- merge pl/sql
begin
merge into pl_merge2 m2
using pl_merge1 m1
on(m1.no = m2.no)
when matched then
update set
m2.name=m1.name
when not matched then
insert values(m1.no, m1.name);
end;
'IT > Oracle' 카테고리의 다른 글
오라클 제공 테스트 테이블 DUAL (0) | 2018.07.23 |
---|---|
오라클 계층형 쿼리와 ROWNUM (0) | 2018.07.23 |
오라클 ROWNUM (0) | 2018.07.23 |
오라클 셋팅방법 및 명령어 (0) | 2018.07.23 |
오라클 PL/SQL (0) | 2018.07.19 |