存储过程编译问题!!!!!!!!!!!

Doloris 2003-03-11 04:47:11
1。在一个数据库中有两个存储过程编译时就死在那儿,和通常情况下的过程有错误提示相关信息不同,没有任何提示(一直挺在那儿,过不去),但可以把以前同名过程drop掉。
2。在分析这两个过程用的几个表也分析不了。
3。shudown immediate数据库停不下来,所有外部session都已停掉。
4。其他过程和表都没有此问题。
5。数据库已经重起n遍(shutdown abort,startup)
6。操作系统AIX4.3,数据库ORACLE920
...全文
338 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Doloris 2003-07-10
  • 打赏
  • 举报
回复
谢谢,太久没来了。送迟了分数,惭愧。
bright1234 2003-06-02
  • 打赏
  • 举报
回复
谢谢hrb_qiuyb(大森林)
我也碰到了这种问题,解决了,谢谢!!
hushuangyang 2003-03-22
  • 打赏
  • 举报
回复
检查以前有没有这两个存储过程,看看是不是这两个过程处于调试状态或者两个过程所在的session 已经处于等待释放锁的状态。
hrb_qiuyb 2003-03-22
  • 打赏
  • 举报
回复
总结陈词:
1、对于你的问题,最简单的办法,是在你down库后,把你的机器重启一下,这决不是搜注意。
2、你的存储过程一编译就死,是因为你的存储过程被其它session给锁了,如果你有决对的耐心,编译器一定会报一个类似"不能锁定存储过程"的错误。其实处理起来很简单,如下:
 a、select * from v$access where object='YOUR PROCEDURE NAME';
记住相应的sid,这时假设其为sid1
b、select sid,serial# from v$session where sid=sid1
c、当然是用alter system kill session 'sid,serial#';杀掉锁过程的进程了。
3、表分析不了也可以用类似2的方法处理。
4、shutdown immediate一定可以把你的库down下来,不过你也要有些耐心,在做shutdown immediate之前,建议把你的应用停下来,或把除oracle的几个smon等进程外,其余的kill -9掉,这样做shutdown immediate就快了。
不过,如果你的库有问题,shutdown immediate 宕库不下来就另说了。
5、重启库N遍不解问题,我认为是共享内存引起的
 当你down 库之后,执行一下如下操作:
 a、#ipcs -pmb
看共享内存中oracle的部分是否在
b、如在,用如下命令处理一下
#ipcrm -m a中的id号
或 #ipcrm -M a中的KEY值
这和重新起动一下主机的效果一样。

再就是祝你好运了!
czmy007 2003-03-21
  • 打赏
  • 举报
回复
先把LISTERNAL停掉,再把数据库SHUTDOWN IMME。。。,
再起数据库,等回滚事务停止后,再建立存储过程
xu_guanghui 2003-03-21
  • 打赏
  • 举报
回复
是不是在编译的时候 ,过程中的某些表被锁住了
ropriest 2003-03-20
  • 打赏
  • 举报
回复
有没有相关的错误信息提示
把过程贴出来看看!
supershb 2003-03-11
  • 打赏
  • 举报
回复
你把存储过程贴出来看看
Lastdrop 2003-03-11
  • 打赏
  • 举报
回复
你的存储过程里是不是用了replace函数?以前碰到过这样的情况。

3,497

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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