728x90
-- 여러행의 레코드 선택을 처리할수 있다.
-- 부서코드를 입력받아 사원번호, 사원명, 입사일, 급여, 부서코드를 선택하는 프로시져
create or replace procedure emp_cursor(p_deptno in emp.deptno%type)
is
--커서정의
cursor deptno_select is
select empno, ename, hiredate, sal, deptno from emp where deptno=p_deptno;
r_emp emp%rowtype;
begin
--커서 open
open deptno_select;
--커서 fetch
LOOP
fetch deptno_select into r_emp.empno, r_emp.ename, r_emp.hiredate, r_emp.sal, r_emp.deptno;
exit when deptno_select%NOTFOUND;
dbms_output.put_line(r_emp.empno||', '||r_emp.ename||', '||r_emp.hiredate||', '||r_emp.sal||', '||r_emp.deptno);
end loop;
--커서 close
close deptno_select;
dbms_output.put_line('실행완료........');
end;
execute emp_cursor(30);
-- member의 모든 레코드 선택
create or replace procedure mem_all(r_mem out sys_refcursor)
is
begin
open r_mem for
select num, username, tel, email, addr, writedate from member order by username;
end;
--member 이메일주소 검색
create or replace procedure mem_search(p_email in member.email%type, search_mem out sys_refcursor)
is
begin
open search_mem for
select * from member where email like '%'||p_email||'%' order by num;
end;
-- 프로시저 확인방법
select * from user_source;
-- 프로시저 삭제방법
drop procedure emp_date;
728x90
'Infrastructure > Database' 카테고리의 다른 글
oracle 게시판 Rownum 사용 (0) | 2021.05.07 |
---|---|
oracle 이전글, 다음글 구하기 (0) | 2021.04.19 |
oracle 트리거 (0) | 2021.03.01 |
oracle 프로시저 (pl/sql) (0) | 2021.03.01 |
oracle 시퀀스 (0) | 2021.03.01 |