Netezza,如何用当前时间发出通知

Netezza, how to RAISE NOTICE with current time

我正在尝试在 UPDATE AND INSERT 查询后使用 RAISE NOTICE 调试 Netezza 过程。我试图在每个查询完成后显示当前时间。 我试过这样的事情:

RAISE NOTICE 'UPDATE time=%', now();

但这不起作用。我让它工作的唯一方法是在过程开始时定义一个时间戳变量,然后在发出通知之前定义这个变量,如下所示:

timevar:=now();
RAISE NOTICE 'UPDATE time=%', timevar;

有没有一种方法可以让我将它组合成一行,而不必在程序开始时定义一个新变量并在每次我想发出通知时立即分配它()?

RAISE 只接受标识符作为格式表达式后的参数。你现在的做法真的是唯一的办法。

The statement syntax follows:  
RAISE level ’format’ [, identifier [...]];

如果您想通过同一事务中的多个步骤跟踪进度,则不能使用 now(),因为它不会改变。

这是 Postgres 中事务管理的一个特性,同一事务中的所有语句都获得相同的值 now()

但是 timeofday() 确实发生了变化,因此您可以使用它。

您可以使用函数代替标识符:

RAISE NOTICE 'UPDATE time=%', timeofday();