CREATE OR REPLACE FUNCTION "F_COMPRARE_DM" (own      in varchar2,
table_na in varchar2,                                                                                                                                          
bz  in varchar2,                                                                                                                                               
CONTENT IN VARCHAR2)                                                                                                                                           
return varchar2 is                                                                                                                                                                                    
Result VARCHAR2(4000);                                                                                                                                                                                
cursor col is                                                                                                                                                                                         
select column_name,data_type    from dba_tab_cols                                                                                                                                                                                where t.owner = own                                                                                                                                                                                
and table_name = table_na;                                                                                                                                                                       
v_col_all varchar2(4000) := null;                                                                                                                                                                     
v_con     varchar2(4000);                                                                                                                                                                             
v_con_all varchar2(4000) := null;                                                                                                                                                                     
v_col  varchar2(4000);                                                                                                                                                                                
v_data_type varchar2(30);    //===
老是提示表或视图不存在,可是这个dba_tab_cols 有呀

解决方案 »

  1.   

    给执行procedure的用户下面的权限:
    grant select any dictionary to youruser;
      

  2.   

    权限问题.
    grant select any table to username
      

  3.   

    有SYSTEM用户也编译不过去呀,我用了以上的方法给了权限还是编译不过去呀,是怎么回事呀
      

  4.   

    报了两个,一个是 ora-00942表或视图不存在  // 要是我看了表是存在的
             一个是sql statement ignored
      

  5.   

    create or replace function wiler_f_test( tab_name varchar2) return varchar2
    as
    cursor col is
    select column_name from dba_tab_cols where table_name=upper(tab_name);
    col_name varchar2(2000);
    v_str varchar2(100);
    begin
      col_name := ' ';
      open col;
      loop
        fetch col into v_str;
        exit when col%NOTFOUND;
        col_name := col_name || ','||v_str;
      end loop;
      close col;
      return col_name;
    end;在 grant SELECT ANY DICTIONARY to username 后编译通过
      

  6.   

    以SYSBDA身份登录后前面的错不报了,又报了新的 
    hint: prarmeter 'content' is decleared but never suer in 'F_COMPRARE_DM' 
    hint: variable 'v_con' is decleared but never user in  'F_COMPRARE_DM' 
    hint :variable 'v_con_all' is decleared but never user in  'F_COMPRARE_DM'