FOREACH表达式不能为空

时间:2019-11-29 14:28:06

标签: postgresql plpgsql

在声明级别,我有:

sqlDel text := 'DELETE FROM %s WHERE %s IS NULL';
fields text[];
field_name text;
ptable := 'myTable';

我在后面的某处填写了字段,因此其中包含3个项目-我检查了还可以。不过,在下面,我有这个for循环语句,在我添加这一行之前,它工作得很好:

EXECUTE format(sqlDel, ptable, field_name);

错误提示:

ERROR: FOREACH expression must not be null

Foreach循环:

FOREACH field_name IN ARRAY fields
    LOOP
         EXECUTE format(sqlDel, ptable, field_name);
         raise notice 'Primary key column: %', field_name;
    END LOOP;

1 个答案:

答案 0 :(得分:0)

错误消息很干净-变量fields为空。您应该先设置它。

fields = ARRAY['id'];
FOREACH ...