首页 > Oracle 存储过程 无法编译 解决方法(转载)

Oracle 存储过程 无法编译 解决方法(转载)

声明:本文为转载,如果有侵犯知识版本,请通知本人,本人将即刻停止侵权行为:

http://blog.csdn.net/tianlesoftware/article/details/7412555

Oracle存储过程无法编译,在PL/SQL中编译,总是挂住了,这个原因可能是要编译的对象被会话给锁住了:

1、查看无效对象:

1 SELECT Object_Name, Object_Type, Status
2   FROM All_Objects
3  WHERE Status = 'INVALID'
4    AND Owner = 'SCOTT';

2、查看正在访问无效对象的会话,这里我们需要使用v$access

      V$ACCESS displaysinformation about locks that are currently imposed on library cache objects.The locks are imposed to ensure that they are not aged out of the library cachewhile they are required for SQL execution.

1 SELECT * FROM V$ACCESS WHERE OBJECT='CREATE_VIEW_P';

查询出来的结果显示是:会话ID为143的会话当前持有该对象。

3、查询143号的会话的状态

1 SELECT Sid, Serial#, Status, Process FROM V$session WHERE Sid = '143';

4、杀掉进程:

1 alter system kill session '143,397';

5、查询进行的状态:

1 select sid,serial#,status,process from v$session where sid='958';

session的状态在刚刚杀掉的时候为KILLED,但是被标记为killed 的进程由PMON 进程kill,但是这个也是有条件的:

PMON will notdelete the session object itself until the client connected to that sessionnotices that it has been killed.如果session 被标记为killed,并且长时间不能被清楚,MOS上给出的解决方法是在OS级别kill 进程。 

6、获取session的spid(系统进程ID)

V$PROCESS中的常用列

ADDR:进程对象地址

PID:oracle进程ID

SPID:操作系统进程ID

V$PROCESS中的连接列

Column View Joined Column(s) 

ADDR V$SESSION PADDR

网址:http://docs.oracle.com/cd/B19306_01/server.102/b14237/dynviews_2022.htm

1 SELECT Spid, Osuser, s.Program
2   FROM V$session s, V$process p
3  WHERE s.Paddr = p.Addr
4    AND s.Sid = 143;

查询系统进行ID,使用系统级别的KILL命令:

可参考:

windows命令:

 To kill the session on the Windows operating system, first identify the session, then substitute the relevant SID and SPID values into the following command issued from the command line.

1  C:> orakill ORACLE_SID(数据库实例名) spid(v$process表中获取)

成功----

转载于:https://www.cnblogs.com/caroline/archive/2012/05/19/2508965.html

更多相关:

  • from sqlalchemy import create_engine from sqlalchemy.orm import scoped_session, sessionmaker from setting import EREBUS_DB_CONNECT_STRING from contextlib import conte...

  • 设置 session_id()程序恢复sess...

  • Session又称为会话状态,是Web系统中最常用的状态,用于维护和当前浏览器实例相关的一些信息。举个例子来说,我们可以把已登录用户的用户名放在Session中,这样就能通过判断Session中的某个Key来判断用户是否登录,如果登录的话用户名又是多少。 我们知 道,Session对于每一个客户端(或者说浏览器实例)是“人手一份”...

  • 上篇笔记中梳理了一把 resolver 和 balancer,这里顺着前面的流程走一遍入口的 ClientConn 对象。ClientConn// ClientConn represents a virtual connection to a conceptual endpoint, to // perform RPCs. // //...

  • 我的实验是基于PSPNet模型实现二维图像的语义分割,下面的代码直接从得到的h5文件开始往下做。。。 也不知道是自己的检索能力出现了问题还是咋回事,搜遍全网都没有可以直接拿来用的语义分割代码,东拼西凑,算是搞成功了。 实验平台:Windows、VS2015、Tensorflow1.8 api、Python3.6 具体的流程为:...

  • Path Tracing 懒得翻译了,相信搞图形学的人都能看得懂,2333 Path Tracing is a rendering algorithm similar to ray tracing in which rays are cast from a virtual camera and traced through a s...

  • configure_file( [COPYONLY] [ESCAPE_QUOTES] [@ONLY][NEWLINE_STYLE [UNIX|DOS|WIN32|LF|CRLF] ]) 我遇到的是 configure_file(config/config.in ${CMAKE_SOURCE_DIR}/...

  •     直接复制以下代码创建一个名为settings.xml的文件,放到C:UsersAdministrator.m2下即可