这句话引发了错误:
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[];
你知道出了什么问题吗?
答案 0 :(得分:1)
使用直接分配而不是选择:
FOR _i2 IN 1 .. array_upper(p_extra_info, 1) LOOP
....
_new_extra_info_ids[_i2] := currval('ad_extra_info_id_seq');
....
END LOOP;