У меня есть функция generate_table, которая принимает 2 входных параметра (rundate::date
и branch::varchar
)
Теперь я пытаюсь работать над второй функцией, используя PLPGSQL, которая получит список всех ветвей и самую новую дату для каждой ветви и передаст это как параметр функции generate_table.
У меня такой запрос:
select max(rundate) as rundate, branch
from t_index_of_imported_files
group by branch
и это приводит к этому:
rundate;branch
2014-03-13;branch1
2014-03-12;branch2
2014-03-10;branch3
2014-03-13;branch4
и мне нужно, чтобы функция выполнялась примерно так
select generate_table('2014-03-13';'branch1');
select generate_table('2014-03-12';'branch2');
select generate_table('2014-03-10';'branch3');
select generate_table('2014-03-13';'branch4');
Я много читал о PLPGSQL, но пока могу только сказать, что едва знаю основы.
Я читал, что можно использовать конкатенацию, чтобы собрать все значения вместе, а затем использовать EXECUTE внутри функции, но я не мог заставить ее работать должным образом.
Любые предложения о том, как это сделать?