在PL/SQL Developer的All_Objects下面的Procedures有一些存储过程,这些过程我测试了一下,有的是存储在all_procedures,有的是存储在user_procedures,有的是存储在dba_procedures,我自己写的存储过程是存放在all_procedures中而在user_procedures和dba_procedures是查不到的,我想请教一下那个Procedures里面存储的过程是怎么存储的,还是这三个all_procedures,user_procedures,dba_procedures怎么划分的,什么区别?

解决方案 »

  1.   

    DBA_PROCEDURES 
    所有函数及过程和他们的相关属性
    USER_PROCEDURES 
    当前用户拥有的所有的函数和过程以及它们的相关属性
    ALL_PROCEDURES 
    列出所有的函数和过程及相关属性
      

  2.   

    还有all_objects,user_objects,dba_objects
      

  3.   

    "USER"视图中记录通常记录执行查询的帐户所拥有的对象的信息
    "ALL"视图中记录包括"USER"记录和授权至PUBLIC或用户的对象的信息
    "DBA"视图包含所有数据库对象,而不管其所有者.
    使用举例:
    select * from DBA_PROCEDURES
    查询所有函数及过程的信息(当前用户必须拥有DBA角色).
    select owner , object_name ,object_type from all_objects
    查询某一用户下的所有表,过程,函数等信息.
      

  4.   

    其实上面的人的Re文里已经基本将User_,DBA_,All_都讲清楚了。要是你的存储过程确实不在User。里,应该看一看你的存储过程到底用哪个用户建的,
    是不是当前PL/SQL Developer使用的登陆用户,
    PL/SQL Developer在All objects显示状态时,对于非当前用户的Object,会在前面加上他所
    属的用户名的。