【问题标题】:Oracle => PostgreSQL: Array of %ROWTYPE?Oracle => PostgreSQL:%ROWTYPE 数组?
【发布时间】:2017-02-08 01:25:58
【问题描述】:

PostgreSQL 中是否有任何方法可以在 Oracle 中的函数中声明本地类型 "TABLE OF ..%ROWTYPE INDEX BY BINARY_INTEGER"

CREATE OR REPLACE FUNCTION FNC
   RETURN NUMBER
AS
   TYPE TYPE_TB IS TABLE OF ADM_APPLICATIONS%ROWTYPE
      INDEX BY BINARY_INTEGER;

   TB_VAR   TYPE_TB;
BEGIN
   return 1;
END;

【问题讨论】:

  • 这看起来像XY Problem。不如描述一下你想要实现的目标?

标签: arrays oracle postgresql database-migration


【解决方案1】:

对于每个表,也有一个对应的类型(同名)可用。

因此您可以执行以下操作:

CREATE OR REPLACE FUNCTION fnc()
   RETURNs integer
AS
$$
declare
   tb_var adm_applications[];
begin
   return 1;
end;
$$
language plpgsql;

【讨论】:

  • 感谢您的回复!然后还有一个问题:如何设置和获取字段值?这种方式行不通:CREATE OR REPLACE FUNCTION fnc() RETURNs integer AS $$ declare tb_var adm_applications[]; begin tb_var[1].col_name:= 'LALALA'; return 1; end; $$ language plpgsql; 它说:“错误:在或附近出现语法错误。”第 5 行:tb_var[1].col_name:= 'LALALA';” @a_horse_with_no_name
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-17
  • 2020-10-02
  • 1970-01-01
  • 1970-01-01
  • 2015-04-03
相关资源
最近更新 更多