首页 > 解决方案 > 如何在 PostgreSQL 中创建类型?

问题描述

如何在 plpgsql 中创建数据类型?我是 PostgreSQL 新手,我正在将 oracle 程序转换为 postgresql 函数。他们在 oracle 中创建了一种类型,例如:

TYPE t_array IS TABLE OF VARCHAR2(4000) INDEX BY BINARY_INTEGER;

然后在如下过程中声明并使用它:

strings t_array;
strings(1) := lv_str;

我想t_array type在 plpgsql 中创建并在函数中使用它,我该如何创建这样的类型或者是否有任何内置类型来在 plpgsql 中实现此功能?

标签: arrayspostgresqlplpgsqlddluser-defined-data-types

解决方案


您不需要在 PL/pgSQL 中为此创建类型,只需声明一个数组变量:

declare
  l_strings text[];
begin
  l_string[1] := 'This is the first string';
  l_string[2] := 'This is the second string';
end;

数组也可以用作参数:

create function do_something(p_some_number integer, p_strings text[])
  returns ..
as
...

调用它使用do_something(42, array['one', 'two'])


推荐阅读