0
TYPE group_opt_cov_rec IS RECORD (
   n_product_version_id          PRODUCT_COVERAGE_GROUP.PRODUCT_VERSION_ID%TYPE := Null 
   n_group_id                PRODUCT_COVERAGE_GROUP.GROUP_ID%TYPE := Null ,
   n_opt_group_cost            PRODUCT_COVERAGE_GROUP.GROUP_PRICE%TYPE := Null,
   n_group_maximum            PRODUCT_COVERAGE_GROUP.GROUP_MAXIMUM%TYPE := Null,
   nt_opt_grp_member_cov_id      prod_types.TYPE_NUMBER_ARRAY := prod_types.TYPE_NUMBER_ARRAY(), 
   nt_opt_grp_member_cov_qty      prod_types.TYPE_NUMBER_ARRAY := prod_types.TYPE_NUMBER_ARRAY(),
   st_opt_grp_member_required      prod_types.TYPE_STRING_ARRAY := prod_types.TYPE_STRING_ARRAY()
-- nt_opt_grp_member_cov_id         common_func.NUM_TABLE := common_func.EMPTY_NUM_TABLE,
-- nt_opt_grp_member_cov_qty      common_func.NUM_TABLE := common_func.EMPTY_NUM_TABLE,
-- st_opt_grp_member_required      common_func.STRING_TABLE := common_func.EMPTY_STRING_TABLE
);

上面的代码是来自 Oracle 的用户定义数据类型,我无法将其转换为 PostgreSQL 上的用户定义数据类型。请帮忙!

4

1 回答 1

1

几乎相同的东西是 PostgreSQL 中的复合类型,并且对于数组使用数组。

CREATE TYPE group_opt_cov_rec AS (
   n_product_version_id       bigint,
   n_group_id                 bigint,
   n_opt_group_cost           numeric,
   n_group_maximum            numeric,
   nt_opt_grp_member_cov_id   bigint[],
   nt_opt_grp_member_cov_qty  bigint[],
   st_opt_grp_member_required text[]
);

我不得不猜测数据类型,酌情替换它们。如果您真的需要这些默认值,请使用域而不是基本数据类型。

于 2020-12-18T12:21:04.293 回答