在 Sybase 中获取系统错误信息

Get System Error Message In Sybase

我正在编写程序并在每一步之后进行错误处理。如果出现错误,我 return 带有自定义用户友好错误消息的错误代码。 但由于一些需要,我还必须传递系统错误信息。

样本:

例如:我正在向 table 中插入一些记录,如果出现问题,我会收到错误消息来处理它。

Insert into A
Select top 250 id from C
inner join D
on c.id = D. id


IF (@@error != 0)
BEGIN
    SELECT @p_err_code = 1
    SELECT @p_err_desc = "Error while inserting records into #PAR_PROVIDERS."
    <---------- how to pass system error message here-------->

    DROP TABLE #PAR_PROVIDERS
    RETURN 1
END

我不知道如何获取指定的错误消息 - 我认为这是不可能的。也许下面的查询将满足您的需求。它 return 和模式消息例如 Must declare variable '%.*s'. insetad of Must declare variable 'fake variable'.

SELECT description 
from master..sysmessages where error = @@error

@@error 变量在每次操作时都会改变,因此您需要使用局部变量,例如 @err。在你的代码中应该是这样的。

declare @err int,
        @msg varchar(255)

Insert into A
Select top 250 id from C
inner join D
on c.id = D. id

select @err = @@error

IF (@err != 0)
BEGIN
    SELECT @p_err_code = 1
    SELECT @p_err_desc = "Error while inserting records into #PAR_PROVIDERS."

    SELECT @msg = description 
    from master..sysmessages where error = @err

    DROP TABLE #PAR_PROVIDERS
    RETURN 1
END