기본 개념
트리거와 프로시저의 차이점은 무엇인지 서술하시오
트리거는 이벤트(주로 DML sql문) 발생시 자동으로 실행되지만 프로시저는 명시적으로 호출을 해줘야만 실행이 된다.
PL/SQL
1~10 사이의 정수 중에서 짝수의 합을 구하는 PL/SQL 프로그램을 작성 하시오
SET SERVEROUTPUT ON
declare
n number := 1; -- 루프를 돌릴 변수
s number := 0; -- 합이 누적될 변수
begin
loop
if n > 10 then
exit;
end if;
if mod(n, 2) = 1 then -- 홀수일 때는
s := s + 0; -- 누적 안시킴
else -- 짝수일 때는
s := s + n; -- 누적 시킴
end if;
n := n + 1; -- 1씩 증가
end loop;
DBMS_OUTPUT.put_line('1~10 사이의 정수 중에서 짝수의 합 : ' || s);
end;
프로시저 생성, 실행
사원 테이블(EMP)에서 사원번호(EMPNO)를 매개변수로 받아서, 사원 정보를 삭제하는 프로시저를 생성하고, 프로시저를 실행하시오
-- 저장 프로시저 생성
create or replace procedure del_emp (vempno in emp.empno%type)
is
begin
delete from emp where empno = vempno;
end;
-- 프로시저 실행
execute del_emp(7788);
프로시저 생성, 실행
사원테이블(EMP)에서 SCOTT 사원의 사원명을 프로시저의 매개변수로 전달해서 SCOTT 사원의 급여를 출력하는 프로시저를 생성하고 실행하시오
1) 프로시저명은 emp_sal 이름으로 생성한다.
2) 생성된 프로시저를 실행할때 매개변수에 SCOTT 사원을 전달해서 실행한다.
-- 프로시저 생성
create or replace procedure emp_sal (
vename in emp.ename%type,
vsal out emp.sal%type)
is
begin
select sal into vsal from emp where ename = vename;
end;
-- 바인드 변수 생성
variable var_sal number;
-- 프로시저 실행
execute emp_sal('SCOTT', :var_sal);
-- 출력
print var_sal;
프로시저 생성, 실행
사원 테이블(EMP)에서 사원번호를 프로시저의 매개변수로 전달 받아서, 그 사원의 사원명, 급여, 부서번호를 구하는 프로시저 생성해서 실행하시오?
1) 프로시저명은 emp_info 이름으로 생성한다.
2) 생성된 프로시저를 실행할때 매개변수에 사원들의 사원번호를 전달해서 실행한다.
3) 프로시저를 실행할때 바인드변수를 만들어서 출력한다.
-- 프로시저 생성
create or replace procedure emp_info (
vempno in emp.empno%type,
vename out emp.ename%type,
vsal out emp.sal%type,
vdeptno out emp.deptno%type )
is
begin
select ename, sal, deptno into vename, vsal, vdeptno from emp where empno = vempno;
end;
-- 바인드 변수 생성
variable var_ename varchar2(10);
variable var_sal number;
variable var_deptno number;
-- 프로시저 실행
execute emp_info(7788, :var_ename, :var_sal, :var_deptno);
-- 출력
print var_ename;
print var_sal;
print var_deptno;
점수
100 / 100
'만들어보기' 카테고리의 다른 글
웹 서버 프로그램 코딩 연습 / 일곱 번째 시험문제 (0) | 2022.09.28 |
---|---|
웹표준 코딩 연습 / 여섯 번째 시험문제 (0) | 2022.08.31 |
SQL 코딩 연습 / 네번째 시험문제 (0) | 2022.08.03 |
SQL 코딩 연습 / 세번째 시험문제 (0) | 2022.08.02 |
자바 코딩 연습 / 두번째 시험문제 (0) | 2022.07.20 |