关于存储过程的两个问题

vber1010 2009-09-03 04:07:29
1 如何知道某个存储过程的最后一次修改时间?
2 不知道什么原因,今天在pl/sql developer突然看到很多过程的名字上面多了*号,成了无效的或者说有错误的过程,但实际上重新编译过程后发现*号没了,过程本身并没有错误。
...全文
122 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzwei321 2009-09-03
  • 打赏
  • 举报
回复
学习了~~~
Petergepeter 2009-09-03
  • 打赏
  • 举报
回复
那就没有地方可以找到了,一般是进SOURCE SAFE,进行版本控制。
vber1010 2009-09-03
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 opps_zhou 的回复:]
引用 5 楼 vber1010 的回复:
谢谢!还是第一个,大家说的方法查出的最后时间可能并没有修改过程。

last_dll 就是最后修改时间呀
由于你已经重编译过所有的存储过程,所以 last_dll 时间应该就是一样的了

[/Quote]
不好意思 可能是我没有说明白。我的意思是最后一次过程有修改的编译,比如过程中多了或少了几条sql语句,大家说的方法是最后一次编译的时间,但最后一次编译可能并没有做修改。 还有个问题,过程的内容可以恢复到刚创建时的样子吗?在没有备份过数据库的情况下。
opps_zhou 2009-09-03
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 vber1010 的回复:]
谢谢!还是第一个,大家说的方法查出的最后时间可能并没有修改过程。
[/Quote]
last_dll 就是最后修改时间呀
由于你已经重编译过所有的存储过程,所以 last_dll 时间应该就是一样的了
opps_zhou 2009-09-03
  • 打赏
  • 举报
回复
用下面的语句查一下,看看有哪些对象创建时间和最后修改时间不一致,尤其是表


select object_name, created, last_dll from user_objects
where created <> last_dll
--and object_type = 'TABLE'
vber1010 2009-09-03
  • 打赏
  • 举报
回复
谢谢!还是第一个,大家说的方法查出的最后时间可能并没有修改过程。
opps_zhou 2009-09-03
  • 打赏
  • 举报
回复
[Quote=引用楼主 vber1010 的回复:]
1 如何知道某个存储过程的最后一次修改时间?
2 不知道什么原因,今天在pl/sql developer突然看到很多过程的名字上面多了*号,成了无效的或者说有错误的过程,但实际上重新编译过程后发现*号没了,过程本身并没有错误。
[/Quote]


--查询存储过程最后一次被修改
select object_name, created, last_dll from user_objects where object_type = 'PROCEDURE';




至于你说的那种情况,可能是某一张表被人删除重建了,导致某几个存储过程实效,而又互相引用,导致更多的存储过程或函数实效

vber1010 2009-09-03
  • 打赏
  • 举报
回复
谢楼上。但是楼上的查询时间不是我要的,因为这个查出的最后一次可能并没有修改过程。。
还有第二个问题帮忙看看啊。
小灰狼W 2009-09-03
  • 打赏
  • 举报
回复
1
select * from user_objects
where object_type='PROCEDURE'
Petergepeter 2009-09-03
  • 打赏
  • 举报
回复
select LAST_DDL_TIME from dba_objects
where OBJECT_NAME like 'XX%';

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧