有错误消息
不,没有图片链接。哇,你需要成为一名真正的程序员来解决这个问题。 https://photos.app.goo.gl/ReCF1f7kuxvpm2R03
我必须做一些非常愚蠢的事情。它说我的表是一个未知变量,但表就在那里。是进入错误的数据库还是什么?
CREATE OR REPLACE FUNCTION s_ar_update()
returns void AS $$
BEGIN
MERGE INTO s_ar_hist h USING s_ar_stage s ON s.cocd = h.cocd and s.documentno = h.documentno and s.itm = hist.itm
WHEN MATCHED THEN DO NOTHING
WHEN NOT MATCHED THEN INSERT VALUES (s.cocd, s.account, s.invoice_ref, s.documentno, s.type, s.reference, s.doc_date, s.payt, s.net_due_dt, s.amount_in_dc, s.curr, s.amt_in_loc_cur,s.lcur,s.amt,s.cur,s.pstng_date,s.text,s.pk, s.doucment_header_text,s.rcd,s.clrng_doc,s.clearing,s.itm.s.item,s.year_month,s.accty,s.cc,s.period,s.pmnt_date,.s.eff_ex_rate,s.gl_amount,s.gl)
WHEN NOT MATCHED THEN DELETE;
insert s_ar_collisions
select * from s_ar_stage
END; $$
LANGUAGE plpgsql;
此外,我无法让代码格式化得那么好。在这个文本编辑器中,IT看起来很好我想这是另一个问题
答案 0 :(得分:0)
t=# do
$$
begin
anything here into vaname from a;
end;
$$;
ERROR: "vaname" is not a known variable
LINE 4: anything here into vaname from a;
^
Time: 0.420 ms`enter code here`
为什么呢?因为我想从最后解析它。并且永远不会访问anything here
语句 - 因此您没有看到MERGE
异常。 Postgres does not have MERGE command。所以得到INTO
并认为你想为变量赋值 - 而不是插入表中。因此你会看到这个例外