我正在尝试创建一个可迭代的变量以在select语句中使用。如果我对变量进行硬编码,则我的代码块可以正常工作:
DO
$$
DECLARE
num integer;
BEGIN
num := (select count(*) from event where event_status in ('pending', 'failed'));
raise notice 'count here: %', num;
END;
$$
但是,如果我尝试从迭代中创建一个名为statuses
的变量,则会收到一条错误消息,提示“数组或数组附近的语法错误”:
DO
$$
DECLARE
statueses array := ('pending', 'failed');
num integer;
BEGIN
num := (select count(*) from event where event_status in statuses);
raise notice 'count here: %', num;
END;
$$
我使用的数据类型错误吗?如何使它工作?注意我正在使用PostgreSQL。