create or replace function func_create_hfm_views3 (app varchar2)
  return boolean is
  Result  boolean;
  vsqlstr varchar2(8000);begin这个是我写的函数  
create or replace function func_create_hfm_views3 (app varchar2)
  return boolean is
  Result  boolean;
  vsqlstr varchar2(8000);begin
  --v_hfmbas_hfm_account_item
  vsqlstr := ' CREATE or replace VIEW v_hfmbas_hfm_account_item1 AS
               SELECT item.ItemID,
                      ' ||app ||',
                      item.Label,
                      item.FirstChildID,
                      item.LastChildID,
                      item.Custom2TopMember,
                      item.AccountType,
                      item.Custom1TopMember,
                      item.Custom3TopMember,
                      item.Custom4TopMember,
                      dsc .Description,
                      item.Label ||  N''['' || nvl(dsc.Description, ''N/A'') || N'']'' AS des, item.IsICP
                      FROM ' || app ||
             '_ACCOUNT_ITEM item
                      LEFT OUTER JOIN v_hfmbas_hfm_account_desc_chs dsc ON item.ItemID = dsc.ItemID
                      ORDER BY item.ItemID';
  execute immediate vsqlstr;  return(Result);
end func_create_hfm_views3;
这个是我写的存储过程
create or replace procedure pro_create_hfm_views4(app varchar2) is  tmp boolean;
begin  tmp := func_create_hfm_views3(app);end pro_create_hfm_views4;当我执行时:EXEC PRO_CREATE_HFM_VIEWS4('UNICOM') 总是提示 execute immediate vsqlstr;这里有错误,不知道为什么?