0
有誰知道如何將PLPGSQL函數的主體設置爲另一個函數的結果文本?例如,這是我曾嘗試:從另一個函數的結果創建PLPGSQL函數
CREATE FUNCTION "Foo"() RETURNS TEXT AS $$
BEGIN
RETURN 'BEGIN END;';
END;
$$ LANGUAGE PLPGSQL;
CREATE FUNCTION "Bar"() RETURNS TRIGGER AS "Foo"() LANGUAGE PLPGSQL;
我想被創建,使得它等同於以下是「酒吧」:
CREATE FUNCTION "Bar"() RETURNS TRIGGER AS $$
BEGIN END;
$$ LANGUAGE PLPGSQL;
有誰知道如何完成這樣的事情(例如,根據另一個函數的結果定義一個函數體)?謝謝,
這可以做到,但它是醜陋的和安全的噩夢。你能解釋一下你爲什麼要這樣做嗎?提供上下文可能會導致解決問題的不同方式。 – Patrick
如果你確實想這樣做,可以使用'EXECUTE'來運行'format(...)'生成的'CREATE FUNCTION'子句的文本。但爲什麼你不只有一個函數調用另一個? –
另請注意,如果這是您想要實現的,那麼觸發器函數也可以有自己的參數。 f.ex. 'CREATE TRIGGER ... EXECUTE PROCEDURE「Bar」('param 1 val',42);' – pozs