我正在创建一个在Oracle中返回表的函数,当我编译它时显示错误:
Error line:
PLS-00382: expression is of wrong type.
这是我的功能:
Create function fn_list(BU number, DU number) return t_table
is
rec t_table
begin
/*more codes are here*/
rec:= t_type(1,1,2)
return rec;/*error is here*/
end;
end fn_list;
create type t_type is object(ID number,BU number, DU number);
create type t_table is table of t_type;
答案 0 :(得分:3)
试试这个:
create type t_type is object(ID number,BU number, DU number);
/
create type t_table is table of t_type;
/
Create function fn_list(BU number, DU number) return t_table
is
rec t_type;
tab t_table;
begin
/*more codes are here*/
rec:= t_type(1,1,2);
tab := new t_table();
tab.extend;
tab(tab.last) := rec;
return tab;
end fn_list;
/
答案 1 :(得分:1)
您的函数返回t_table
类型,但您尝试返回t_type
类型。您还有一个额外的END
语句和几个缺失的分号。
您可以更正它并将其简化为:
Create function fn_list(BU number, DU number) return t_table
is
begin
return t_table( t_type(1,1,2) );
end fn_list;
/