Как использовать объявленные параметры как компонент запроса в Pl / pgSQL? - PullRequest
2 голосов
/ 19 октября 2010

Я пытаюсь сделать обобщенную функцию в pl / pgsql.Я столкнулся с проблемой, которую не могу понять.Смотри в блоке объявления я присвоил значение некоторым параметрам.Я хотел бы знать, как использовать их в качестве компонента запроса.(пример: блок BEGIN / END, groupby_join_field)

  CREATE OR REPLACE FUNCTION drillThrough(whereclause anyarray, groupbyclause anyarray) RETURNS void AS $$

    DECLARE
            where_table varchar(19) := whereclause[1];
            where_join_field varchar(19) := whereclause[2];
            where_value_field varchar(19) := whereclause[3];
            where_value varchar(19) := whereclause[4];

            groupby_table varchar(18) := groupbyclause[1];
            groupby_join_field varchar(18) := groupbyclause[2];
            groupby_value_field varchar(18) := groupbyclause[3];
    BEGIN
            INSERT INTO test SELECT dim_date.groupby_join_field, 1 FROM dim_date;
    END;
    $$ LANGUAGE plpgsql;

Любая идея приветствуется,

Редактировать:

В этом случае поле goupby_join_field имеет значение year_id, поэтомуЯ хотел бы, чтобы двигатель понимал dim_date.year_id

1 Ответ

1 голос
/ 19 октября 2010

Я не знаю, правильно ли я понял ваш вопрос, но я попробую.

Вы можете выполнить произвольные строки с помощью команды pl / pgSQL EXECUTE,Так что вам просто нужно построить запрос в виде строки.

...