来自STDIN的PL / pgSQL COPY变量

时间:2019-01-16 07:15:19

标签: postgresql plpgsql postgresql-9.6

我有以下脚本:

DO $$
DECLARE
    i INTEGER;
BEGIN

    i := 5;

    COPY public.mytable (id, name) FROM stdin;
    i   abc
    \.

END $$;

我使用psql运行以上脚本。我想从变量i中获取值,并在COPY命令中使用它。如何在PL / pgSQL中做到这一点?可以使用\ echo吗?

1 个答案:

答案 0 :(得分:0)

您可以在动态SQL中使用变量:

EXECUTE format('COPY %I FROM ''/path/file''', i);

但是您不能在PL / pgSQL中使用COPY ... FROM STDIN,因为函数中没有标准输入。