【问题标题】:Capture logging for stored procedure in Postgresql在 Postgresql 中捕获存储过程的日志记录
【发布时间】:2020-12-21 05:31:15
【问题描述】:

我们正在开展一个报告项目,我们正在执行存储过程以对源数据执行转换并将其转换为所需的格式。转换后的数据将插入到不同的表中。我们想知道在存储过程中需要实现哪些最佳实践,主要用于

  1. 获取从源表处理的记录数。从源表中获取数据并执行转换后,它将被插入到某个中间表中。在我们的例子中,我们从多个表中获取源并执行转换。我们在 mysql 中有一个 ROW_COUNT() 来插入/更新行。我想知道 postgres 中的等价物
  2. 如果在插入或更新等任何过程中出现错误,如何捕获错误详细信息。我们目前在代码中使用异常处理程序。但是是否有任何特定的 postgres 函数或命令可用于捕获错误代码等。

任何可以包含在存储过程中以提高清晰度/效率的其他信息/最佳实践,请告知

非常感谢您对上述内容的任何帮助。

【问题讨论】:

    标签: sql postgresql stored-procedures


    【解决方案1】:

    您可以使用GET STACKED DIAGNOSTICS 获取有关 PL/pgSQL 异常处理程序中错误的所有相关信息。要在其他地方处理信息,您可以将其保存在临时表中。

    关于行数,您可以使用count 作为窗口函数。但既然你说你正在获取过程中的行,那么在获取它们时简单地计算它们会更便宜。

    【讨论】:

      【解决方案2】:
      1. 阅读 this 描述 GET DIAGNOSTICS 的文档部分

      2. 阅读this 了解SQLSTATEGET STACKED DIAGNOSTICS

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多