Мне нужно прочитать переменные psql в plpgsql. Кажется, что нет никакого способа сделать это, по крайней мере, я не видел решений.
1) Храните некоторые вар в psql
2) Прочитайте эту переменную в plpgsql и сохраните другую переменную в plpgsql как psql
переменная
3) Прочитайте окончательную переменную psql в SQL-запросе
пробовал var: =: var (не работает)
Попробовал \ gset в plpgsql (не работает)
Понятия не имею, как продолжить
\set var1 100
SELECT :var1 AS var1;
>>
var1
------
100
(1 row)
--All good
--Assign psql variable using \gset
SELECT 200 AS var2 \gset
SELECT :var2 AS var2;
>>
var2
------
200
--All good
DO $$
DECLARE
var3 int;
BEGIN
--I want to get psql variable var2. This doesn't work
var3 := :var2;
--I want to store var3 to psql variable using \gset method. This doesn't work either
EXECUTE 'SELECT ' || var3 || ' AS var3 \\gset';
END $$;
>>
ERROR: syntax error at or near ":"
LINE 6: var3 := :var2;
^
--This is what I want in the end
SELECT :var3 AS var3;
>>
ERROR: syntax error at or near ":"
LINE 1: SELECT :var3 AS var3;
^
--This obviously doesn't work
Я хочу прочитать переменные psql в plpgsql, затем что-то с ними сделать и сохранить как новые переменные psql, чтобы потом можно было читать их в запросе sql (OUTSIDE plpgsql !!!).