我已经在postgres中编写了一个存储过程来填充一些有关电话号码的统计信息
create or replace function PhoneNumberSummary(
phonenumber varchar(255),
fromperiod timestamp without time zone,
toperiod timestamp without time zone
)
所以我想为不同的电话号码拨打相同的程序。我可以通过重新设计我的存储过程在单个调用中执行此操作,我的意思是变量参数列表。
有没有有效的方法来使用相同的存储过程?
答案 0 :(得分:0)
我不知道我能清楚地理解你的问题。
基本上,它取决于函数的返回,以及变量参数列表的位置。
例如,您的变量参数列表位于表xyz
上,如下所示。
phonenumber | time_start | time_end
123 | 2018-01-01 13:00:00 | 2018-01-01 13:50:00
456 | 2018-01-01 20:00:00 | 2018-01-01 20:50:00
您可以将您的功能称为
SELECT (PhoneNumberSummary(t.phonenumber, t.time_start, t.time_end)).* FROM xyz t
希望我的回答能帮到你。
答案 1 :(得分:0)
您可以将输入参数定义为数组,这样您就可以使用函数在一个INSERT
语句中插入多个行。
您可以构建一个多行INSERT
- 语句并使用EXECUTE
执行它。
我不确定这是否会提高性能,但您可以尝试运行性能测试。