DECLARE
--변수선언
msg varchar2(20) default 'gildong';
begin
--실행문
--대입문
msg := '홍길동';
dbms_output.put_line(msg);
end;
--프로시저 생성하기
--사원번호를 입력받아 사원의 정보(사원명, 담당업무, 급여를 선택하는 프로시저 작성)
-- 프로시저명
create or replace procedure emp_update(p_empno emp.empno%type, p_sal emp.sal%type,
p_deptno emp.deptno%type, p_comm emp.comm%type)
is
e_rec emp%rowtype;
begin
update emp set sal=p_sal, deptno = p_deptno, comm=p_comm where empno=p_empno;
select empno, sal, deptno, comm into e_rec.empno, e_rec.deptno, e_rec.sal, e_rec.eomm
from emp where empno=p_empno;
dbms_output.put_line('사원번호 = ' || e_rec.empno);
dbms_output.put_line('사원번호 = ' || e_rec.sal);
dbms_output.put_line('사원번호 = ' || e_rec.);
dbms_output.put_line('사원번호 = ' || e_rec.comm);
end;
--실행
execute emp_select(7900);
--%type : 실제 필드의 데이터형과 자릿수를 적용하는 변수 선언시
--레코드 추가하는 프로시저 생성
-- 사원번호, 사원명, 급여, 부서코드를 추가
create or replace procedure emp_insert(p_empno emp.empno%type, p_ename emp.ename%type,
p_sal emp.sal%type, p_deptno emp.deptno%type)
is
begin
insert into emp(empno, ename, sal, emptno) values(p_empno, p_ename, p_sal, p_deptno);
commit;
dbms_output.put_line(p_empno || '-> 레코드가 추가됨');
end;
execute emp_insert(1234, 'XXXX', 5000, 30);
--7369, 7499
--레코드 1개의 모든 필드를 선택하는 프로시저 생성
create or replace procedure emp_record(p_empno emp.empno%type)
is
r_emp emp%rowtype;
begin
update emp set
select empno, ename, mgr, job, hiredate, sal, comm, deptno
into r_emp.empno, r_emp.ename, r_emp.mgr, r_emp.job, r_emp.hiredate,r_emp.sal, r_emp.comm, r_emp.deptno
from emp where empno=p_empno;
dbms_output.put_line('사원명 = ' || r_emp.ename|| ', 입사일 = ' || r_emp.hiredate);
end;
execute emp_record(7369);
--프로시저명 emp_update
--사원번호, 급여, 부서번호, 보너스를 입력받아
-- 입력받은 사원번호의 급여, 부서번호, 보너스를 수정하는 프로시저 생성하라
create or replace procedure emp_update(p_empno emp.empno%type, p_sal emp.sal%type,
p_deptno emp.deptno%type, p_comm emp.comm%type)
is
e_rec emp%rowtype;
begin
update emp set sal=p_sal, deptno = p_deptno, comm=p_comm where empno=p_empno;
select empno, sal, deptno, comm into e_rec.empno, e_rec.deptno, e_rec.sal, e_rec.eomm
from emp where empno=p_empno;
dbms_output.put_line('사원번호 = ' || e_rec.empno);
dbms_output.put_line('사원번호 = ' || e_rec.ename);
dbms_output.put_line('사원번호 = ' || e_rec.sal);
dbms_output.put_line('사원번호 = ' || e_rec.comm);
end;
최근댓글