现有一个自定义函数:
function fun return varchar2 as
begin
  return 'select * from table1';
end;然后在一个存储过程中动态调用此函数,但函数名是通过存储过程的参数传入:
procedure proc(p_Fun in varchar2) as
  v_SQL varchar2(500);
begin/*  
如何在此调用参数 p_Fun 指向的函数而获得字符串'select * from table1',不能通过 v_SQL := p_Fun 形式调用,否则v_SQL只能得到字符串 fun,而不是函数fun 的返回值'select * from table1',同理,select p_Fun into v_SQL from dual 也不行。
如果是用 execute immediate p_Fun into v_SQL 也不行,因为这样编译器会执行fun返回的那条SQL语句并得到记录集,而不是SQL语句本身。
*/end;