当发生异常时,我想从过程中返回错误消息。在SQL Server中,您将选择Error_Number()和Error_Message()。我将如何在FirebirdSql中做到这一点

SET TERM ^ ;

CREATE PROCEDURE sprocname
 ( id int )
RETURNS
 ( gcode int, errmsg varchar(250) )
AS
BEGIN
  gcode = 0;
  errmsg = '';
  -- do procedure code here


  WHEN ANY DO
  BEGIN
    gcode = gdscode; -- ??
    errmsg = ??;
  END
  SUSPEND;
END^

SET TERM ; ^

最佳答案

不幸的是,您将需要在客户端执行此操作,因为当前无法在PSQL中获得此功能。 Firebird跟踪器中有一个feature request,已为Firebird 4实现,预计在2019年发布。
请参阅Firebird 4 Beta 2 release notes, section System Function RDB$ERROR()(警告:链接可能会在下一版本或GA版本中中断):

关于firebird - 在FirebirdSql中,如何从过程返回异常消息,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20555143/

10-12 23:21