迁移至PostgreSQL时声明类型遇语法错误,求解决方案
PostgreSQL中声明集合类型的语法修正
PostgreSQL不支持Oracle风格的TYPE ... IS TABLE OF语法,针对你的报错,按以下两种场景调整:
全局创建可复用的集合类型
如果obj1是已定义的复合/对象类型,直接创建它的数组类型:
CREATE TYPE rec_tab1 AS obj1[];
注:PostgreSQL会自动为每个自定义类型生成对应的数组类型(格式为类型名[]),多数场景下无需显式执行上述语句,直接使用obj1[]即可。
在PL/pgSQL中声明集合变量
如果是在函数或存储过程内声明这类变量,直接用数组语法声明:
DECLARE rec_tab1 obj1[]; BEGIN -- 业务逻辑代码 END;
另外注意:你报错语句中的rec_tabi和rec_obj1,与你提供的代码存在拼写差异,修正语法后也需要检查这类拼写问题。
内容的提问来源于stack exchange,提问作者parrpt
相关产品推荐
相关产品推荐

