根据参数在循环中运行存储过程

问题描述 投票:0回答:1

我有一个函数“ test_function”,其中我传递了“ _snapdt”作为参数。我要跑步

此函数在一个循环中单独存在多个日期(_snapdt)。有人可以帮我吗。

例如,我想将此功能运行多个日期,例如“ 2018-01-30”,2018-02-30“和

等等..

当前我正在手动运行,如下所示>>

select * from test_function('2018-01-30') ;
select * from test_function('2018-02-30') ;

这里是功能

CREATE OR REPLACE FUNCTION test_function(_snapdt date) 
RETURNS integer
AS 
$BODY$
declare rows integer;
BEGIN

DROP TABLE IF EXISTS temp_table;
create table temp_table AS
select col1,col2 
    from table1
    where id=01000 and
    snapshot_date=_snapdt
group by col1,col2
distributed randomly;


INSERT INTO standard_table
(   snap_date,
    col1,
    col2
)
SELECT 
_snapdt as snap_date,
a.col1,
a.col2,
FROM temp_table a;

GET DIAGNOSTICS rows=ROW_COUNT;
DROP TABLE IF EXISTS temp_table;
return rows;
END;
$BODY$
LANGUAGE plpgsql; 

我有一个函数“ test_function”,其中我传递了“ _snapdt”作为参数。我想在一个循环中单独运行几个日期(_snapdt)的函数。有人可以帮我吗例如...

sql postgresql stored-procedures
1个回答
0
投票

使用generate_series()

© www.soinside.com 2019 - 2024. All rights reserved.