Oracle 사용자 정의 이상 실현 프로 세 스 분석

메모:일반적인 검색 어 에 이상 이 없 으 며,into 를 사용 하여 변 수 를 할당 할 때 만 이상 이 발생 합 니 다.

--    : notfound --> if sql%notfund then          ,  (   )  
--,        :no_result exception
        -- if sql%nofund then
        --excetpion
          --when no_result then
          --dbms……
사용자 정의 이상 쓰기:declare 에 다음 과 같 습 니 다.

set serveroutput on
declare
no_result exception; --     
v_ssid student_test.sid%type;

begin
  update student_test set sex=' ' where sid=1000002;  --    , (     )       
 if SQL%NOTFOUND then
  RAISE no_result;
 end if;
exception
 when no_result then
  dbms_output.put_line('    !');
 when dup_val_on_index then
  dbms_output.put_line('    ,      ');
end;
수정 문 이 비어 있 으 면 시스템 이 잘못 보고 하지 않 지만 사용자 가 정의 하 는 no 에 직접 들 어 갑 니 다.결과 이상 리,

if SQL%NOTFOUND then
  RAISE no_result;
end if;
SQL%NOTFOUND 는 업데이트 문 구 를 업데이트 하 는 데 성 공 했 는 지 확인 하 는 것 입 니 다.업데이트 에 실패 하면 notfound 문 구 는 진짜 입 니 다.
raise 문 구 를 사용 하여 no 로 이동 합 니 다.result 이상 실행.
(dup_val_on_index)이상 은 시스템 이상 입 니 다.삽입 문 구 를 사용 하고 메 인 키 의 유일한 제약 을 위반 하면 dup 을 실행 합 니 다.val_on_index 이상.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기