我试过调简单的过程,是可以的。所以应该不是权限问题 @zlloct 

解决方案 »

  1.   

    procedure 是你那个用户建立的吗
      

  2.   

    嗯 ,报错的结果: You do not have privileges to use the "PACK_API.Exist_" 
    这个要怎么赋权限
      

  3.   

    嗯 ,报错的结果: You do not have privileges to use the "PACK_API.Exist_" 
    这个要怎么赋权限
    Grant execute on PACK_API.Exist_ to userxxx;
      

  4.   


    grant execute on PACK_API to "test";
    对这个包已经赋权限了,但是还是不行
      

  5.   

    不是,但是我赋权限了
    还有个方法是你选择一个能执行的用户看都赋了些什么权限或ROLE,然后赋相同的权限或ROLE跟test.我担心的是你调用的PROCEDURE包含的对象较多,涉及的权限和ROLE也很多
      

  6.   


    这个过程是调用很多的对象,我权限都赋了很多,但是还是没办法执行。想问一下,我有一个过程,每次执行时,都需要用其它的用户去执行这个过程。除了DBLINK外还有其它的方法吗?
      

  7.   

    你是什么数据库呢,oracle:execute any procedur或者在create or replace procedure p_name authid current_user is
      

  8.   

    我试了第二种,create or replace procedure p_name authid current_user is
    提示表和视图不存在。我这边对象很多,又不想去一一授权。第一种的话,我没权限执行。
      

  9.   

    最好叫你远程的数据库 给你赋予权限了 create or replace procedure p_name authid current_user is
     提示表和视图不存在这个表和视图都是你远程数据库的吧,当然提示不存在了,还有这个authid current_user 在packahes和packages bodies 好像不行的
      

  10.   

    那只能说没加完。。涉及的表,视图什么的也需要权限的select update 等等
      

  11.   

    不是,但是我赋权限了
    还有个方法是你选择一个能执行的用户看都赋了些什么权限或ROLE,然后赋相同的权限或ROLE跟test.我担心的是你调用的PROCEDURE包含的对象较多,涉及的权限和ROLE也很多
    我同意这个说法
      

  12.   

    这个要怎么查看。
    刚接触ORACLE,所以很多东西都不懂。
    还麻烦您指个方向
      

  13.   

    这个要怎么查看。
    刚接触ORACLE,所以很多东西都不懂。
    还麻烦您指个方向select * from DBA_tab_privs  T WHERE T.grantee='USERNAME';   --直接授予用户帐户的对象权限
    select * from DBA_role_privs T WHERE T.grantee='USERNAME'; --授予用户帐户的角色
    select * from DBA_sys_privs T WHERE T.grantee='USERNAME';   --授予用户帐户的系统权限
      

  14.   

    直接赋了DBA权限了,还是存在问题,看来要换个思路解决了。
    谢谢楼上各位大牛。