게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
[본삭금] 오라클 EXCEPTION 질문좀 드릴께요.
게시물ID : programmer_15250짧은주소 복사하기
작성자 : 꿈이구나2
추천 : 0
조회수 : 839회
댓글수 : 2개
등록시간 : 2015/12/31 14:01:40
옵션
  • 본인삭제금지
begin 
DECLARE SEQVAL NUMBER;
              NTable varchar(10000);
              e_not_exist EXCEPTION;
              
    begin        
    for c in  (SELECT TNAME FROM tab where tname <> 'XPObjectType') loop         
    NTable := c.TNAME;
    --DBMS_OUTPUT.PUT_LINE(NTable);
    --SELECT TNAME INTO NTable FROM tab where TNAME = c.TNAME;
    SELECT MAX(OID) INTO SEQVAL FROM NTable;                       
    --EXECUTE IMMEDIATE(' drop sequence IL5_SEY.'||c.TNAME||''); 
    --EXECUTE IMMEDIATE(' create sequence IL5_SEY.'||c.TNAME||' increment by 1 start with '||SEQVAL||' NOCYCLE CACHE 20 NOORDER');                              
    end loop;            
    EXCEPTION
    WHEN NO_DATA_FOUND THEN
    DBMS_OUTPUT.PUT_LINE(NTable);
    WHEN VALUE_ERROR  THEN
    DBMS_OUTPUT.PUT_LINE(NTable);
    WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE(NTable);
    End;
end;

우선 위와 같은 문장인데요

이 문장에 핵심 내용은 Loop를 돌아서 검색한 테이블을 Select 해서 키 값 max 값을 찾고

해당 max 값으로 Sequence 만드는 쿼리 입니다.

근데 이 쿼리에서 전체 테이블 검색 하면서 비교하는 문장 에서

테이블 이나 뷰가 없다고 나옵니다. 에러 나오는건 그렇다 치는데

이게 예외 처리로 안떨어 집니다. 이걸 예외로 잡아 볼려고 하는데 검색해 봐도 모르겠네요

예외로 빠지게 해야 어떤 테이블에서 에러가 나오는지 알 수 있는데 그게 아니고선 찾기가 어렵네요.

mssql 은 좀 편한게 오라클은 좀 그지 같네요... 

아오... 좀 많이 불편하네요.. 왜 오라클이 mssql 보다 좋다고 하는지 모르겠네요??

제가 mssql 개발을 3년 정도 하고 오라클을 이제 6개월 조금 넘기면서 배우는데

프로시저 짜는게 오라클은 진짜 젓 같네요.. 머가 안되는게 이리 많은지.. Continue 가 11 버전 부터 된다는 것도

오늘 알았네요 에휴.. 아무튼.. 제가 만든 오라클 프로시저에서 발생 되는 "테이블 이나 뷰가 없습니다." 에러에 대해서는

예외 처리가 불가능 한건가요??
      
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호