带数组的select语句抛出错误

时间:2016-10-13 06:14:16

标签: sql postgresql plpgsql

这句话引发了错误:

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[];

你知道出了什么问题吗?

1 个答案:

答案 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;