我试图通过我的fdw一个选项,它的值是一个变量。我的直觉是这样做,但它说x abc有一个语法错误。我需要做些什么才能让它发挥作用?
DO $$
DECLARE abc varchar :='hi';
Begin
drop server partner cascade;
create server partner foreign data wrapper multicorn options(
wrapper 'multicorn.fdw.Fdw'
);
create foreign table partner_accounts(
name text
) server partner options(
x abc
);
END $$
答案 0 :(得分:2)
尝试获得类似的工作一次,最后使用executing formatted查询:
DO $$
DECLARE abc varchar :='hi';
BEGIN
drop server partner cascade;
create server partner foreign data wrapper multicorn options(
wrapper 'multicorn.fdw.Fdw'
);
EXECUTE format('create foreign table partner_accounts(
name text
) server partner options(
x %L
)', abc);
END $$
%L
将值格式化为SQL文字,因此在这种情况下为'hi'
。您不能将USING
和参数符号与实用程序语句一起使用,因此您必须以文本方式插入值。