テーブルにデータを挿入する関数を作成しようとしています。私が使用しているクエリは、スキーマ名が変数である必要がある以外は変更されません。例えば、私のスキーマ名の1つはbscu.membersであり、35個の非常に似ているものがあります(wea.members、pcu.members .. etc etc ..)。変数を使用してPostgreSQLで関数を作成する方法に関するヘルプが見つかりませんでした。スキーマ名は、通常はどこに行くかスキーマ名の変数を使用して 'insert into'関数を作成する
これは私がこれまでに思い付いたものですが、それは
create or replace function attsummary(varchar)
RETURNS void
LANGUAGE plpgsql
AS $function$
BEGIN
insert into dwh.attribution_summary
select
m.source,
m.name,
m.partner_id,
d.ucic,
b.acct_type_desc as acct_desc,
a.begin_mo_balance as opening_balance,
c.date,
h.campaignname,
g.description as banner_desc,
f.create_time::timestamp as time_served,
'd' as dep_or_loan,
'h' as home_or_nonhome
from
$1.fact_deposits a
join $1.dim_acct_type b on a.acct_type_id = b.acct_type_id
join $1.dim_date c on a.date_id = c.date_id
join $1.dim_members d on a.ucic = d.ucic
join ad_delivery.sgmt_adic e on d.adic::varchar = e.adic
join ad_delivery.sgmt_user_tracker f on e.cookie_id = f.id
join ad_delivery.ox_banners g on g.bannerid = f.banner_id
join ad_delivery.ox_campaigns h on h.campaignid = f.campaign_id
join ad_delivery.sgmt_kli_adic i on e.adic = i.adic
join dwh.sgmt_clients m on m.partner_id = i.sgmt_partner_id
where
i.kli=8616208
and m.partner_id::integer != 909909
が動作していないし、その後、私のselect文は、後に来る..私は私の変数$ 1を使用しています。
http://www.postgresql.org/docs/9.1/interactive/plpgsql-statements.html#PLPGSQL-STATEMENTS -EXECUTING-DYN) – dbenhur