我在将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中做到这一点?
我试着到处放圆括号和括号,但我找不到解决方案。
这当然是一个非常愚蠢的问题,但你能告诉我做这件事的语法吗?
谢谢
发布于 2021-03-09 21:04:44
您可以在PostgreSQL中创建这样的类型:
CREATE TYPE personas_rt AS (adulto bigint, nino bigint);
CREATE TYPE room_type_rt AS (id bigint, personas_aa personas_rt[]);然后,如果您有一个类型为room_type_rt[]的记录hab_list,则可以在PL/pgSQL中执行此操作:
((hab_list[1]).personal_aa[1]).adulto := 2;但通常情况下,解开这种难以形容的嵌套混乱是一个好主意,这与关系数据库设计不太相称。
https://stackoverflow.com/questions/66546830
复制相似问题