【问题标题】:Oracle View Object Type ColumnOracle 视图对象类型列
【发布时间】:2020-10-27 17:30:51
【问题描述】:

对象类型

create or replace TYPE "TYPE_FE_FEE_DETAIL" AS OBJECT
(
  FE_AMOUNT VARCHAR2(25),
  CURR_ID VARCHAR2(5),
  PROFILE_TYPE VARCHAR2(1),
  ISO_CODE VARCHAR2(25)
);

create or replace TYPE "TYPE_TB_FE_FEE_DETAIL" AS TABLE OF type_fe_fee_detail;

我们有一个包含两列的视图,其中第二列是 OBJECT TYPE 并且有类似的数据

EPAYPROD_M3.TYPE_TB_FE_FEE_DETAIL(EPAYPROD_M3.TYPE_FE_FEE_DETAIL('10', '1', '1', '818'))

我需要将这四个值插入一个有四个单独列的表中。我在这样做时遇到了麻烦。

【问题讨论】:

  • 您遇到错误了吗?如果有,是哪一个?

标签: oracle object types view user-defined-types


【解决方案1】:

TYPE_TB_FE_FEE_DETAIL 是一个嵌套表。要获取属性值,请将其取消嵌套。

您可以使用表格运算符来做到这一点:

create or replace TYPE "TYPE_FE_FEE_DETAIL" AS OBJECT
(
  FE_AMOUNT VARCHAR2(25),
  CURR_ID VARCHAR2(5),
  PROFILE_TYPE VARCHAR2(1),
  ISO_CODE VARCHAR2(25)
);
/

create or replace TYPE "TYPE_TB_FE_FEE_DETAIL" AS TABLE OF type_fe_fee_detail;
/
  
with rws as (
  select type_tb_fe_fee_detail(type_fe_fee_detail('10', '1', '1', '818')) obj
  from   dual
)
  select t.*
  from   rws r, table ( r.obj ) t;
  
FE_AMOUNT   CURR_ID   PROFILE_TYPE   ISO_CODE   
10          1         1              818   

【讨论】:

  • 谢谢克里斯。但是我有多行的表,我放了样本值以供参考。如何使用 column_name 而不是字段值来实现这一点
  • @Jey - 您应该发布足够的样本数据以完全解释您的情况,以及从该样本中获得的所需输出。如果您无法从 Chris 在这里给您的内容中找出解决问题的方法,您需要编辑您的问题,以解释仍然困扰您的问题。
猜你喜欢
  • 1970-01-01
  • 2012-01-23
  • 2012-04-13
  • 1970-01-01
  • 2020-05-08
  • 2011-11-18
  • 1970-01-01
  • 1970-01-01
  • 2020-12-27
相关资源
最近更新 更多