在下面的 postgres 函式中,我將“sample”(整數)作為輸入引數傳遞,但是當我嘗試使用函式體內的 raise notice 列印它的值時,我收到以下錯誤
錯誤:列“樣本”不存在第 1 行:選擇樣本
CREATE OR REPLACE FUNCTION public.test_function(
sample integer)
RETURNS json
LANGUAGE 'sql'
COST 100
VOLATILE PARALLEL UNSAFE
AS $BODY$
DO $$
BEGIN
raise notice 'test: %',sample;
END
$$;
select json_agg(1);
$BODY$;
select "test_function"(10);
uj5u.com熱心網友回復:
這是匿名 pl/pgsqlDO塊,它沒有“看到”sample引數。這是 pl/pgsql 中的重寫,它確實“看到”了它。
CREATE OR REPLACE function test_function(sample integer)
RETURNS json LANGUAGE plpgsql COST 100 VOLATILE PARALLEL UNSAFE AS
$BODY$
BEGIN
raise notice 'test: %',sample;
return json_agg(1 sample);
END
$BODY$;
pl/pgsqlDO塊或多或少被封裝,也不能回傳任何東西。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/346758.html
標籤:sql PostgreSQL 管理员
下一篇:拆分列并在sql中的新列中顯示
