【发布时间】:2018-09-13 14:08:03
【问题描述】:
我目前正在将一些程序从 Oracle 迁移到 Postgres,这些程序使用的类型是为处理未知数量的值而创建的:
TYPE array_text IS TABLE OF VARCHAR2 (50);
所以他们可以声明如下变量:
myValues in array_text;
然后以这种方式使用它:
myValues(1) := 'VALUE1';
myValues(2) := 'VALUE2';
...
所以我一直在学习并尝试使用 Postgres 复制这种行为,但直到现在我都找不到正确的方法。我尝试创建一个复合类型,如:
CREATE TYPE array_text AS (
val varchar(50)
);
或者
CREATE TYPE array_text AS (
v varchar(50)[]
);
但是我不能像原来的那样使用它们,实际上我无法创建一个成功的测试。
我怎样才能得到这种行为或类似的东西?所以我可以设置和获取值,甚至可以像在 Oracle 中一样计算它的长度
【问题讨论】:
标签: sql oracle postgresql plpgsql