Postgresql EDB上的嵌套类型

Postgresql EDB上的嵌套类型,postgresql,edb,Postgresql,Edb,我在将plsql应用程序迁移到edb时遇到问题。 当前的问题是,我们没有嵌套类型,例如: TYPE personas_rt IS RECORD (adulto numeric, nino numeric); TYPE personas_aat IS TABLE OF personas_rt INDEX BY BINARY_INTEGER; TYPE room_type_rt IS RECORD (id numeric, personas_aa personas_aat); TYP

我在将plsql应用程序迁移到edb时遇到问题。 当前的问题是,我们没有嵌套类型,例如:

 TYPE personas_rt IS RECORD (adulto numeric, nino numeric);  
 TYPE personas_aat IS TABLE OF personas_rt   INDEX BY BINARY_INTEGER;
 TYPE room_type_rt IS RECORD (id numeric, personas_aa personas_aat);
 TYPE room_type_aat  IS TABLE OF room_type_rt         INDEX BY BINARY_INTEGER;
在oracle plsql过程中,我可以执行以下操作:

 hab_list (1).personas_aa (1).adulto := 2;
我的问题是,如何在edb中做到这一点

我试着把括号和括号放在每个地方,但我找不到解决办法

这肯定是一个非常愚蠢的问题,但你能告诉我这样做的语法吗


谢谢

您可以在PostgreSQL中创建如下类型:

CREATE TYPE personas_rt AS (adulto bigint, nino bigint);
CREATE TYPE room_type_rt AS (id bigint, personas_aa personas_rt[]);
然后,如果您有类型为
room\u type\u rt[]
的记录
hab\u list
,则可以在PL/pgSQL中执行此操作:

((hab_list[1]).personal_aa[1]).adulto := 2;
但通常,解决这种无法形容的嵌套混乱是一个好主意,因为这种混乱不适合关系数据库设计