create or replace function exc_using(int, text) returns int as
$$
declare i int;
begin
for i in execute 'select * from generate_series(1,$1) ' using $1 1 loop
raise notice '% ', i;
raise notice 'i i *3: % ', i i * 3;
end loop;
execute 'select $2 $2 * 3 length($1) '
into i using $2, $1;
return i;
end
$$
language plpgsql;
似乎A
execute 'select $2 $2 * 3 length($1) '
into i using $2, $1;
return i;
等同于: B
execute 'select $1 $1 * 3 length($2) '
into i using $1, $2;
return i;
我的看法是 $2 絕對是指資料型別為文本的函式第二個引數。但似乎 plpgsql $[position] 是相對的。但是我無法獲得此邊緣案例的手動參考。
uj5u.com熱心網友回復:
當然,它們是相對的。他們還會是什么?但它們與什么有關?
在 EXECUTE 字串中,$1 和 $2 是相對于 USING 的。在外部,它們是相對于函式引數的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/476017.html
上一篇:替換PostgresSQL中“@”之后的所有電子郵件地址
下一篇:選擇哪個SQL查詢?
