오라클은 SQL로 프로그래밍을 할 수 있는 기능이 있습니다.
바로 PL/SQL이라는 것으로 데이터베이스의 개념은 아닙니다.
MSSQLServer에서는 T-SQL이라고 합니다.
현재로서는 3개의 언어를 배워야 하는 상태이므로 이후에 자세히 알아보시기 바랍니다.
Procedure
이 얘기를 꺼낸 것은 여기서 procedure이라는 개체가 있기 때문입니다.
procedure는 자주 사용하는 SQL 문장을 하나의 이름으로 묶어서 만들어 두고 사용하는 기능입니다. 관계형 데이터베이스마다 만드는 방법이 다르기 때문에 다른 데이터베이스를 사용하신다면 이 방법은 안 맞을 수도 있습니다.
참고로 오라클에서 프로시저를 만드는 문법은 PL/SQL 이고 MSSQLServer에서 만드는 문법을 T-SQL 이라고 합니다.
프로시저를 만들어서 사용하면 서버의 메모리에 프로시저가 상주하기 때문에 매번 SQL 문장을 작성해서 실행하는 것보다 트래픽 수를 줄일 수 있어서 효율적입니다.
프로시저는 명령어를 사용하기 전에 작업해야 하는 것이 있는데 아래 내용과 같이 작성하고 한번 실행 후에 프로시저를 생성, 삭제, 수정 할 수 있습니다.
set serveroutput on
begin
DBMS_OUTPUT.PUT_LINE('Hello PL/SQL');
end;
/
프로시저를 생성하는 틀은 아래와 같습니다.
CREATE [OR REPLACE ] PROCEDURE prcedure_name
( argument1 [mode] data_taye,
argument2 [mode] data_taye . . .
)
IS
local_variable declaration
BEGIN
statement1;
statement2;
. . .
END;
/
ceate [or replace] procedure 프로시저이름
(매개변수이름 용도 자료형...)
is
사용자 정의 변수
begin
수행할 내용
end;
/
만든 프로시저를 실행시키려면 아래와 같이 작성하면 됩니다.
execute 프로시저이름(매개변수 나열);
프로시저를 이제 사용할 일이 없다면 삭제하게 되는데, 명령어는 아래와 같습니다.
drop procedure 프로시저이름;
Procedure 실습
1. 매개변수가 없는 프로시저 만들기
1) dept 테이블의 모든 데이터를 삭제하는 프로시저 만들기
create or replace procedure delete_dept
is
begin
delete from dept;
end;
/
2. dept 테이블에 데이터를 삽입하는 프로시저
create or replace procedure insert_dept
( pcd_deptno dept.deptno%type,
pcd_dname dept.dname%type,
pcd_loc dept.loc%type)
is
begin
insert into dept(deptno, dname, loc) values(pcd_deptno, pcd_dname, pcd_loc);
end;
/
execute insert_dept(50, '영업', '춘천');
select * from dept;
3. deptno를 입력받아서 dept 테이블에서 deptno에 해당하는 데이터를 삭제하는 프리시저 만들기
create or replace procedure delete_deptno
( dd_deptno dept.deptno%type )
is
begin
delete from dept
where deptno = dd_deptno;
end;
/
execute delete_deptno(50);
select * from dept;
'JAVA 공책 > => 다시 정리' 카테고리의 다른 글
Parameter (0) | 2018.08.24 |
---|---|
Exception Handling(예외처리) (0) | 2018.08.23 |
인터페이스 (0) | 2018.08.22 |
Trigger (0) | 2018.07.31 |
Database에서의 Inline view & Rownum & Sequence & Index & Synonym (0) | 2018.07.31 |