create or replace procedure TestType(cur out sys_refcursor,
pid varchar2,
bt in varchar2,
et in varchar2,
interval in varchar2) is
cout number;
v_type TY_TBL_VIT := TY_TBL_VIT();
cursor group_cur is select name from table(v_type) where name is not null group by name;
sqlstr varchar2(3000);
begin
----中间部分代码省略
for n in group_cur loop
sqlstr := sqlstr || ',SUM(DECODE(name,'''|| n.name ||''',name,0)) ' || n.name;
end loop;
sqlstr := 'select ' || substr(sqlstr,2,length(sqlstr)-1) || ' from table(v_type) group by which order by which';
DBMS_OUTPUT.PUT_LINE(sqlstr);
open cur for sqlstr;
end TestType;
调用存储过程,在执行最后一行“open cur for sqlstr;”的时候 提示 ORA-00904: "V_TYPE": 标识符无效。
问下应该怎么处理
pid varchar2,
bt in varchar2,
et in varchar2,
interval in varchar2) is
cout number;
v_type TY_TBL_VIT := TY_TBL_VIT();
cursor group_cur is select name from table(v_type) where name is not null group by name;
sqlstr varchar2(3000);
begin
----中间部分代码省略
for n in group_cur loop
sqlstr := sqlstr || ',SUM(DECODE(name,'''|| n.name ||''',name,0)) ' || n.name;
end loop;
sqlstr := 'select ' || substr(sqlstr,2,length(sqlstr)-1) || ' from table(v_type) group by which order by which';
DBMS_OUTPUT.PUT_LINE(sqlstr);
open cur for sqlstr;
end TestType;
调用存储过程,在执行最后一行“open cur for sqlstr;”的时候 提示 ORA-00904: "V_TYPE": 标识符无效。
问下应该怎么处理