如何在嵌套时访问用户定义类型的字段? 当我试图使用点符号失败:如何访问嵌套用户定义类型的字段?
ERROR: "v_zoo.bear_object.animal_name" is not a known variable
LINE 8: v_zoo.bear_object.animal_name='Mishka';
例如,我怎么“编译”这个代码?
sqls $ cat animal.sql
DROP TYPE IF EXISTS zoo_t CASCADE;
CREATE TYPE zoo_t AS (
wolf_object animal_t,
bear_object animal_t
);
DROP TYPE IF EXISTS animal_t CASCADE;
CREATE TYPE animal_t AS (
animal_id integer,
animal_color varchar,
animal_name varchar
);
CREATE OR REPLACE FUNCTION animal_func()
RETURNS void AS $$
DECLARE
v_animal animal_t;
v_zoo zoo_t;
BEGIN
v_animal.animal_name:='Chupacabras';
v_zoo.bear_object.animal_name='Mishka';
END;
$$ LANGUAGE PLPGSQL;
试图运行它:
sqls $ psql dev < animal.sql
DROP TYPE
CREATE TYPE
NOTICE: drop cascades to 2 other objects
DETAIL: drop cascades to composite type zoo_t column wolf_object
drop cascades to composite type zoo_t column bear_object
DROP TYPE
CREATE TYPE
ERROR: "v_zoo.bear_object.animal_name" is not a known variable
LINE 8: v_zoo.bear_object.animal_name='Mishka';
^
sqls $
我收到了Postgres团队的回复,表示这是一个不受支持的功能。 (使用嵌套结构) – Nulik