如何从Type(object)中获取列名?Type表示来自前端的对象数组。
答案 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;