ITPub博客

首页 > Linux操作系统 > Linux操作系统 > user_procedures与user_objects的问题

user_procedures与user_objects的问题

Linux操作系统 作者:childishwanghe 时间:2016-01-07 09:04:00 0 删除 编辑
    分别执行下面两条语句:
select o.* from user_objects o where o.object_type='PROCEDURE';
select * from user_procedures ;
会发现两条sql执行后的结果不一样,记录条数也不一样,为什么呢?
原因是user_procedures视图中只包含编译通过的存储过程和函数,而user_objects o where o.object_type='PROCEDURE'包含所有的存储过程(包含编译不通过的)。

select *
  from user_procedures p
 where not exists (select 1
          from user_objects uo
         where uo.OBJECT_TYPE = 'PROCEDURE'
           and uo.OBJECT_NAME = p.object_name)
 
select *
  from user_objects p
 where p.OBJECT_TYPE = 'PROCEDURE' and not exists (select 1
          from user_procedures uo
         where uo.OBJECT_NAME = p.object_name)

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30590922/viewspace-1972966/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: oracle直方图
请登录后发表评论 登录
全部评论

注册时间:2015-11-26

  • 博文量
    11
  • 访问量
    15184