oracle 저장 프로세스와 트리거 실험 총결
2106 단어 데이터베이스
1. 저장 프로세스 생성
create or replace procedure prFemale(
pSno out S_RZ0119.Sno%type,
pSname out S_RZ0119.Sname%type,
pSage out S_RZ0119.Sage%type,
pSsex out S_RZ0119.Ssex%type,
pSdept out S_RZ0119.Sdept%type,
out_var out sys_refcursor
)
is
begin
open out_var for select Sno,Sname,Sage,Ssex,Sdept into pSno,pSname,pSage,pSsex,pSdept
from S_RZ0119
where Ssex=‘ ‘;
end;
/
2. 저장 프로세스 실행
var abc refcursor
declare
pSno varchar2(11);
pSname varchar2(20);
pSage number(2);
pSsex varchar2(9);
pSdept varchar2(20);
begin
prFemale(pSno,pSname,pSage,pSsex,pSdept,:abc);
end;
/
//인쇄
print :abc;
(2) JXGL 데이터베이스에 저장 프로세스를 만들고 실행하며 S표에서 학번을 따라 이 학생의 이름과 나이를 조회하고 되돌려준다.
1. 학번별로 학생 이름과 나이를 조회하는 과정 만들기
create or replace procedure searchS(
pSno in S_RZ0119.Sno%type,
pSname out S_RZ0119.Sname%type,
pSage out S_RZ0119.Sage%type
)
is
begin
select Sname,Sage into pSname,pSage
from S_RZ0119
where Sno=pSno;
end;
/
2. 저장 프로세스 실행
declare
pSname varchar2(20);
pSage number(20);
begin
searchS(‘131102‘,pSname,pSage);
dbms_output.put_line(pSname);
dbms_output.put_line(pSage);
end;
/
(3) JXGL 데이터베이스에 트리거를 만들어 S표 중학생의 나이가 8~45세 사이임을 보증한다.
1. 나이 트리거 만들기
create or replace trigger tri_SageWrong
before insert
on S_RZ0119
for each row
begin
if((:new.Sage<8) or (:new.Sage>45)) then
RAISE_APPLICATION_ERROR(-20600,‘ 8-45 !‘);
end if;
end;
/
2. 테스트
insert into S_RZ0119 values (‘130105‘,‘ ‘,‘ ‘,6,‘ ‘);
(4) JXGL 데이터베이스에 트리거를 만들고 학생이 어떤 과목을 선택했을 때 C표에서 이 과목을 삭제할 수 없다.
1. 과정 트리거 만들기
create or replace trigger tri_CourseDelet
before delete
on C_RZ0119
for each row
declare CCount number;
begin
select count(*) into CCount from SC_RZ0119 where Cno=:old.Cno;
if CCount>0 then
RAISE_APPLICATION_ERROR(-20601,‘ , !‘);
end if;
end;
/
2. 테스트
delete from C_RZ0119 where Cno=‘C001‘;
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
SQLite의 query로 망설임이것은 내가 처음 안드로이드 응용 프로그램 개발에서 망설이고, 그 후 해결 된 방법을 비망록으로 철자하고 있습니다. java에서 SQLite를 이용한 애플리케이션을 작성하는 동안 EditText에 입력된 item이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.