CREATE TYPE personobj AS
(
first_name character varying(50),
last_name character varying(50),
date_of_birth timestamp without time zone(0)
);
CREATE TABLE people
(
id numeric(10) NOT NULL,
person "personobj"
);
我已将数据插入表格" People"。现在我想从" Person"中选择行。柱。
表格中的数据如下所示
id | Person
1 | ('foo','bar','16-APR-1990')
2 | ('xyz','mno','16-APR-1991')
我想使用以下程序打印所有Person.LAST_NAME值。
DO $$
DECLARE
I INT[];
J PERSONOBJ[];
BEGIN
SELECT INTO J FROM PEOPLE; -- how do I insert data here, so that I can loop
FOREACH I SLICE 1 IN ARRAY J
LOOP
RAISE NOTICE '%', J[I].ID;
END LOOP;
END;
$$ LANGUAGE 'plpgsql';
ERROR: FOREACH expression must not be null
CONTEXT: PL/pgSQL function inline_code_block line 7 at FOREACH over array
我尝试将NUMERIC和TYPE结合起来并将其作为数组发送,然后使用FOREACH显示数据。我可以知道我在哪里做错了。提前谢谢。