2

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を理解してもらいたいと思います。

4

1 に答える 1

1

あなたの質問を正しく理解したかどうかはわかりませんが、試してみます。

EXECUTEpl/pgSQLコマンドで任意の文字列を実行できます。したがって、クエリを文字列として作成する必要があります。

于 2010-10-19T09:17:02.937 に答える