CREATE OR REPLACE FUNCTION test(ITEM_ID VARCHAR)
RETURNS VOID AS $$
DECLARE n1 INT;
n2 INT;
...
n100 INT;
BEGIN
IF ITEM_ID='item1' THEN
SELECT item1 INTO n1 FROM ...;
ELSIF ITEM_ID = 'item2' THEN
SELECT item2 INTO n2 FROM ...;
...
ELSIF ITEM_ID = 'item100' THEN
SELECT item100 INTO n100 FROM ...;
NED IF.
END;
$$ LANGUAGE plpgsql;
Суффиксные номера 1,2 ..., 100 ITEM_ID и переменные n1, n2 ..., n100 соответствуют! Я попытался сократить длинную инструкцию следующим образом, но безуспешно!
..
BEGIN
-- eg. select 1 into 'n1', select 2 into 'n2'..., , select N into 'nN'
EXECUTE FORMAT( 'SELECT %1$s INTO %2$s FROM ...;', SUBSTRING(item_id, 5), 'n' || SUBSTRING(item_id, 5) );
END;
...
Имя строковой переменной (например, 'n1', 'n2' ... соответствующие имена переменных n1, n2 ... )!
Как назначить значение для каждой переменной (n1, n2 ...) по каждой представленной строке: (n1 ',' n2 '...)?
Любая помощьБуду очень признателен!