사용자 정의 에러
Sybase ASE 2012. 7. 30. 11:38
매일매일 새삼스럽게 느끼는거지만 ASE 는 정말 어렵네요..........................
책도 원서뿐이고 변변찮은 매뉴얼도 없고..
오늘은 프로시저 내에서 사용자 정의 에러를 내보내는 방법을 알아봅니다
(아니 프로시저 사용법도 안알려주고-;;;)
프로시저를 사용하다 보면 시스템 에러(중복키 삽입 등) 이외에도
개발하고자 하는 목적에 의하여 특정 조건의 에러를 체크해야 할 경우가 생깁니다.
다음은 하위코드가 존재하는 상위코드의 삭제시 사용하는 사용자 정의 에러 예제입니다.
sp_addmessage 20001, '하위코드가 존재하므로 삭제할 수 없습니다.'
sp_addmessage 에러코드, '에러메세지'
DB내에서 시스템테이블을 살펴보면 sysusermessages 라는 테이블이 존재하는데,
사용자 정의 에러는 이 테이블에 추가됩니다.
에러코드는 int 형태로 입력하며, 20000 이상부터 입력하실 수 있습니다.
에러메세지는 문자열 형태로 입력합니다.
이렇게 사용자 정의 에러를 등록해놓은 후
RAISERROR 20001
를 실행하면 해당 에러메세지가 출력됩니다.
RAISERROR 에러코드
뻔하게도 sp_altermessage를 이용하면 내용을 수정할 수 있고,
sp_dropmessage 20001 과 같이 사용하면 해당 에러메세지를 삭제할 수 있습니다.
프로시저 내에서 사용시에는 앞에 exec를 붙여서 실행해야 합니다.
exec sp_addmessage 21783, '등록할 수 없는 항목입니다.';