0
Это утверждение бросает:Выберите оператор с массивом бросает ошибку
FOR _i2 IN 1 .. array_upper(p_extra_info, 1) LOOP
....
SELECT currval('ad_extra_info_id_seq') INTO _new_extra_info_ids[_i2];
....
END LOOP;
ERROR: syntax error at or near "["
LINE 179: ...rrval('ad_extra_info_id_seq') INTO _new_extra_info_ids[_i2];
^
********** Error **********
ERROR: syntax error at or near "["
SQL state: 42601
Character: 7907
Переменная _new_extra_info_ids
объявляется так: _new_extra_info_ids integer[];
Вы знаете, что это неправильно?
Во-первых одна рекомендации Пожалуйста, не объявить любое имя переменного, начиная с особым характером несколько раз с которыми я столкнулся компилятор запутаться с таким родом именования. –
Я поставил «_» перед всеми объявленными переменными для различия - никогда не давал мне проблем. @a_horse_with_no_name, которое работает, спасибо. –
Выполнение подобных действий в циклах _might_ указывает на неэффективную обработку наборов в вашей функции. Возможно, вам захочется вернуться к этой логике, но информации об этом недостаточно. Но, видя, что 'select' внутри цикла, как правило, звонит на звонок для меня. –