У меня есть функция, в которой я хочу запустить цикл для каждого элемента массива.Я получаю строку ввода, например, «tab1 # tab2 # tab3» ... Каждый элемент строки должен быть разделен (на #), чтобы получить tab1, tab2, tab3 в myArray.Моя функция:
CREATE OR REPLACE FUNCTION funcA(
myUid integer,
mytable_name varchar,
state varchar)
RETURNS void AS
$BODY$
declare
TABarray varchar[];
indx int;
BEGIN
select REGEXP_REPLACE('{'||myTABLE_NAME||'}','#','','g') into TABarray;
for indx in 1..array_length(TABarray, 1) loop
execute 'update ' || TABarray(indx) || ' set CODE_STATO = ''' || state || ''' where uid = ' || myUid || 'and CODE_STATO <> ''N'' ';
raise notice 'i: %', TABarray[ indx ];
end loop;
END; $BODY$
LANGUAGE plpgsql stable
В результате я ожидаю 3 разбитых строки, таких как:
-tab1
-tab2
-tab3
Прямо сейчас myFunction print {tab1tab2tab3}.
select oms_write_stato (10, 'tab1#tab2#tab3', '')
Что я делаю не так?
Заранее спасибо!