我在 Postgres SQL 上,我正在尝试编写一个过程,我可以从 tableA 中获取
name
,然后遍历该 name
值并在另一个连接查询中使用它来获取结果。
此过程的目的是生成某种报告以查看或生成表格行并稍后将它们导出为某种 csv 格式。
这就是我的程序。
CREATE OR REPLACE PROCEDURE process_report() AS $$
DECLARE
name_row RECORD;
BEGIN
-- Select names from table
FOR name_row IN select name from TableA LOOP
SELECT tc.time,tc.index,ta.name,tb.value FROM TableB as tb
inner join TableC as tc on kpii.id = kpir.index_id
inner join TableA as ta on kpic.id = kpir.kpi_id
where ta.name = 'name_row.name';
END LOOP;
END;
当我使用 CALL process_report() 运行它时,我得到的错误消息是
ERROR: query has no destination for result data
HINT: If you want to discard the results of a SELECT, use PERFORM instead.
CONTEXT: PL/pgSQL function process_results() line 9 at SQL statement
SQL state: 42601
我应该如何更改我的程序,以获取表格行并从中生成报告。