如何从Type(对象)中获取列名?

时间:2015-07-07 04:02:05

标签: oracle types

如何从Type(object)中获取列名?Type表示来自前端的对象数组。

2 个答案:

答案 0 :(得分:0)

以下是创建用于将表中的行映射到其中的类型的语法。这里我有一个返回类型对象数组的函数,它只是来自表的行..

对象类型可以表示任何现实世界的实体 您可以将它们定义如下

create or replace type my_table_info as object(
COL1 VARCHAR2(40),
COL2 NUMBER,
COL3 NUMBER)

使用点表示法访问对象属性

DECLARE
  info my_table_info;
BEGIN
  info := my_table_info('value1', 'value2', 'value3');
  DBMS_OUTPUT.PUT_LINE(info.col1);
  DBMS_OUTPUT.PUT_LINE(info.col2);
  DBMS_OUTPUT.PUT_LINE(info.col3)  
END;
/

下面创建一个对象数组

CREATE OR REPLACE TYPE MY_TYPE as table of my_table_info

该函数返回类型数组

create or replace function MY_FUNCTION(vi_col1     table.col1%type,
                                       vi_col2     table.col2%type,
                                       vi_col3     table.col3%type)
 return MY_TYPE as

 V_RESULTS MY_TYPE :=MY_TYPE();

 V_RESULTS.EXTEND;
 V_RESULTS(V_RESULTS.LAST):=MY_TYPE(vi_col1,vi_col2,vi_col3);

return V_RESULTS;

现在,在您的查询中,您可以直接从类型中选择列,如下所示;

select col1,col2,col3 from my_table_info_function

答案 1 :(得分:0)

你的问题不是那么清楚,但我认为你正在寻找这个:

SELECT *
FROM ALL_TYPE_ATTRS;