如何修改记录数组中的字段



我来自Oracle世界,并尝试迁移包过程。本地类型在 Oracle 包中声明:

  TYPE t_class_record IS RECORD
  (
     id_class       classes.id_class%TYPE,
     field1         number,
     field2         number
  );
  TYPE t_classes_table IS TABLE OF t_class_record
     INDEX BY BINARY_INTEGER;
  l_classes_table                     t_classes_table;

l_classes_table由 SELECT 语句初始化,其中单个数组元素的后续单个字段修改如下:

  l_classes_table(i).field1 := l_value;

到目前为止,我已经在PostgreSQL中做了以下工作:

  • 定义了与上面列出的结构相对应的组合类型:

    CREATE TYPE t_class_record AS (id_class CHARACTER VARYING,
                                   field1   INTEGER,
                                   field2   INTEGER);
    
  • 定义了一个具有 t_class_record 数组类型的局部变量的过程:

    l_classes_array                   t_class_record [];
    

但是当我尝试修改数组中记录的字段时,我收到语法错误。

l_classes_array[i].field1 := l_value;

错误ERROR: syntax error at or near "." Position: 12414位置指向[i]之后的.。我不知道是什么导致了这个语法错误。

我的目标是在变量中存储记录数组,以便能够修改单个数组元素的各个字段。

以下问答提供了问题的原因和解决方案:

PL/pgSQL:访问自定义类型数组的元素的字段

相关内容

  • 没有找到相关文章

最新更新