在 Postgresql 中捕获存储过程的日志记录
Capture logging for stored procedure in Postgresql
我们正在进行一个报告项目,我们正在执行存储过程以对源数据执行转换并将其转换为所需格式。转换后的数据将被插入到不同的table。我们想知道在存储过程中需要实施的最佳实践是什么,主要用于
- 获取从源 table 处理的记录数。从源 table 获取数据并执行转换后,它将被插入到某个中间 table 中。在我们的例子中,我们正在从多个 table 中获取源代码并执行转换。我们在 mysql 中有一个 ROW_COUNT() 来插入/更新行。我想知道 postgres
中的等价物
- 如果在插入或更新等任何过程中发生错误,如何捕获错误详细信息。我们目前在代码中使用异常处理程序。但是是否有任何特定的postgres函数或命令可用于捕获错误代码等
任何额外的information/best实践,可以包含在存储过程中到更多clarity/efficieny,请指教
非常感谢对上述内容的任何帮助。
您可以使用 GET STACKED DIAGNOSTICS
获取有关 PL/pgSQL 异常处理程序中错误的所有相关信息。要在其他地方处理信息,您可以将其保存在临时 table.
中
关于行数,您可以将 count
用作 window 函数。但是既然你说你正在获取过程中的行,那么在获取它们时简单地计算它们会更便宜。
我们正在进行一个报告项目,我们正在执行存储过程以对源数据执行转换并将其转换为所需格式。转换后的数据将被插入到不同的table。我们想知道在存储过程中需要实施的最佳实践是什么,主要用于
- 获取从源 table 处理的记录数。从源 table 获取数据并执行转换后,它将被插入到某个中间 table 中。在我们的例子中,我们正在从多个 table 中获取源代码并执行转换。我们在 mysql 中有一个 ROW_COUNT() 来插入/更新行。我想知道 postgres 中的等价物
- 如果在插入或更新等任何过程中发生错误,如何捕获错误详细信息。我们目前在代码中使用异常处理程序。但是是否有任何特定的postgres函数或命令可用于捕获错误代码等
任何额外的information/best实践,可以包含在存储过程中到更多clarity/efficieny,请指教
非常感谢对上述内容的任何帮助。
您可以使用 GET STACKED DIAGNOSTICS
获取有关 PL/pgSQL 异常处理程序中错误的所有相关信息。要在其他地方处理信息,您可以将其保存在临时 table.
关于行数,您可以将 count
用作 window 函数。但是既然你说你正在获取过程中的行,那么在获取它们时简单地计算它们会更便宜。