0

値が変数であるオプションを 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 $$
4

1 に答える 1

2

一度動作するようなものを取得しようとしましたが、最終的にフォーマットされたクエリ を実行しました:

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ユーティリティ ステートメントでは パラメータ記号と パラメータ記号を使用できないため、値をテキストで挿入する必要があります。

于 2016-06-29T16:43:58.490 に答える