프로시저는 반환값이 없음 함수는 반드시 값을 반환해야함
함수는 일반쿼리에 사용가능하지만 프로시저는 반환값이없으므로 반드시 실행시키려면 1.EXCUTE어쩌고, 2.별도의익명블록
서버에 미리 저장되어서 실행가능한 (컴파일된) 모듈
캐시메모리에 저장되기 때문에 실행속도가 빠르다
반환 값이 없음
프로젝트 수행 시 분업화 지원
*사용 형식
CREATE [OR REPLACE] PROCEDURE 프로시져명[(
매개변수 IN|OUT|INOUT 타입 [:=default값],
:
매개변수 IN|OUT|INOUT 타입 [:=default값])]
IS|AS
변수,상수,커서 선언;
BEGIN
비지니스 로직 구현;
[EXCEPTION
예외처리구문;
END [프로시저명];
INTOUT은 아주필요한경우가아니면 쓰지말아라
EX
사원테이블에 다음 자료를 저장하는 프로시저를 작성하시오
사원번호 : 301 사원명 : 홍길동 입사일 : 2018년 3월 2일 급여 : 3500 |
사원번호 : 312 사원명 : 강감찬 입사일 : 2020년 6월 1일 급여 : 2700 |
외부로부터 입력되어지는 데이터의 갯수가 4개, 모드는 IN모드가 되어야함(밖에서 안으로들어가야하니까)
각각의 타입은 EMPLOYEES테이블에서 알아서 정해놓음
CREATE OR REPLACE PROCEDURE insert_emp_proc(
P_EID IN EMPLOYEES.EMPLOYEE_ID%TYPE,
P_NAME IN EMPLOYEES.EMP_NAME%TYPE,
P_HDATE IN EMPLOYEES.HIRE_DATE%TYPE,
P_SAL NUMBER) -- 여기까지가 매개변수를 정리해 주는 곳
IS
BEGIN
INSERT INTO EMPLOYEES(EMPLOYEE_ID,EMP_NAME,HIRE_DATE,SALARY)
VALUES(P_EID,P_NAME,P_HDATE,P_SAL);
COMMIT;
END;
'학원수업_Oracle' 카테고리의 다른 글
USER DEFINED FUNCTION(FUNCTION) (0) | 2020.11.09 |
---|---|
프로시저 (0) | 2020.11.09 |
201105 (0) | 2020.11.05 |
201104 커서 (0) | 2020.11.05 |
201104 반복문 (0) | 2020.11.04 |