如何设置pgAgent步骤Result
或Output
显示我的函数处理的行数?
我的函数已经返回受影响的行数,但这不是Result
中显示的值。
BEGIN
WHILE int_pending > 0 LOOP
.....
UPDATE table SET ....
GET DIAGNOSTICS int_row_count = ROW_COUNT;
int_total = int_total + int_row_count;
END LOOP;
RETURN int_total;
END;
答案 0 :(得分:0)
output = stepConn->GetLastError();
...
rc = threadConn->ExecuteVoid(
wxT("UPDATE pgagent.pga_jobsteplog ")
wxT(" SET jslduration = now() - jslstart, ")
wxT(" jslresult = ") + NumToStr(rc) + wxT(", jslstatus = '") + stepstatus + wxT("', ")
wxT(" jsloutput = ") + threadConn->qtDbString(output) + wxT(" ")
wxT(" WHERE jslid=") + jslid);
pgagent存储作业步骤执行的最后一个错误。
因此,有两种方法可以实现所需的行为:
在plpgsql函数中使用RAISE EXCEPTION
,如下所示:
CREATE OR REPLACE FUNCTION test_output() RETURNS VOID AS $$
DECLARE
rows int := 25;
BEGIN
RAISE EXCEPTION 'Updated rows: %', rows;
END;
$$ LANGUAGE PLPGSQL;