Sybase ASE 12.5의 Raiserror 메시지 서식
-
21-08-2019 - |
문제
저장된 절차에서 매개 변수가 1 미만인 지 테스트하려고합니다. 그렇다면 친숙한 메시지와 매개 변수의 값으로 오류를 제기합니다.
내 코드는 다음과 같습니다.
IF @ID IS NULL OR @ID <= 0
BEGIN
RAISERROR 27001 'ID is ?????. ID cannot be null or less then zero.'
RETURN 27001
END
내가 다시 원하는 것은 다음과 같습니다.
"ID는 0입니다. ID는 0 이하이 될 수 없습니다."또는"ID는 NULL입니다. ID는 널 또는 0보다 적을 수 없습니다."
나는 바르 차를 만들고 다음과 같은 오류를 높이려고 시도했습니다.
RAISERROR 27001 @message
그러나 그것은 오류가 발생합니다 "Raiserror로 전달 된 메시지 번호 27001은 Sysmessages 카탈로그에 존재하지 않습니다."
해결책 2
NULL의 @ID 값은 빈 문자열로 기록되지만 이것은 작동합니다.
IF @ID IS NULL OR @ID <= 0
BEGIN
DECLARE @msg varchar(250)
SELECT @msg = 'ID is ' + Convert(varchar(15), @ID) + '. Value cannot be null or less then zero'
RAISERROR 27001 @msg
RETURN 27001
END
다른 팁
문제는 이것입니다. SP_ADDMESSAGE를 호출하여 사용자 정의 오류 #을 데이터베이스에 추가해야합니다.
sp_addmessage 27001, "ID is %1. ID cannot be null or less than zero."
그런 다음 위와 같이 Raiserror를 호출하거나 이렇게 호출 할 수 있습니다 (SP_ADDMESSAGE에서 정의한 메시지 문자열을 사용하려면) :
RAISERROR 27001, @ID
편집 : (주소 주소)
먼저, 당신이 너무 기울어 진다면, 메시지로서의 위치 인수와 함께 27001을 등록하십시오.
sp_addmessage 27001, "%1"
둘째, SP_ADDMESSAGE를 사용하여 등록한 기본 메시지를 표시하지 않아도됩니다. 예를 들어, 이것은 기본 메시지가 무엇인지에 관계없이 별도의 메시지를 표시해야합니다.
RAISERROR 27001 @message
제휴하지 않습니다 StackOverflow