有以下代码,请各位帮我看看哪里出现问题了,异常出现在第12行和第18行
create or replace procedure proc_trade
as
v_cname user_tab_columns.COLUMN_NAME%type;
v_cvalue varchar2(50);
cursor t_columname is select column_name as b from user_tab_columns where table_name='MDM_CUSTEPMASTER';
begin
open t_columname;
loop
fetch t_columname into v_cname;
exit when t_columname%notfound;
select v_cname into v_cvalue from mdm_custepmaster where trim(v_cname)='Y';
exception
when no_data_found then dbms_output.put_line('没有数据');
when too_many_rows then dbms_output.put_line(v_cname);
when others then dbms_output.put_line('错误情况不明');
end loop;
close t_columname;
end;
------解决方案--------------------
给你一个函数,参数为要执行的select语句,返回值为select语句的执行结果
FUNCTION GetValue (P_SQL in varchar2) RETURN varchar2 IS
str varchar2(500);
mycursor INTEGER;
ignore INTEGER;
begin
mycursor := dbms_sql.open_cursor;
dbms_sql.parse(mycursor,P_SQL,1);
DBMS_SQL.DEFINE_COLUMN(mycursor,1,str,500);
ignore := dbms_sql.execute(mycursor);
if DBMS_SQL.FETCH_ROWS(mycursor)<> 0 then
DBMS_SQL.COLUMN_VALUE(mycursor,1,str);
end if;
dbms_sql.close_cursor(mycursor);
return str;
END;