oracle中v$access视图用法

发布时间:2020-03-05编辑:脚本学堂
本文介绍了oracle中v$access视图的使用方法,可以利用此视图的v$session视图配合使用,来杀掉一个正在运行的数据库对象(比如存储过程procedure)。

如何杀掉一个正在运行的存储过程,请查询这篇文章:
oracle杀掉一个正在运行的数据对象:oracle如何杀掉正在运行的存储过程  
 
可以利用此视图的v$session视图配合使用,来杀掉一个正在运行的数据库对象(比如存储过程procedure)。
介绍:
 

复制代码 代码示例:
V$ACCESS视图显示数据库中当前锁定的对象及访问它们的会话 。
This view displays objects in the database that are currently locked and the sessions that are accessing them.
Column Datatype Description(字段描述):
SID NUMBER 访问一个对象的会话
OWNER VARCHAR2(64) 对象的拥有者
OBJECT VARCHAR2(1000) 对象名称
TYPE VARCHAR2(24) 对象的类型标识符(procedure,function等)

注意:
在对v$access视图执行查询操作的时候会出现如下奇怪的现象不知为什么,在这里做下记录。
正常来讲,比如我想查询现在正在运行的存储过程TEST_PROC,用下例语句即可:
 

复制代码 代码示例:
SELECT * FROM v$access t WHERE t.OBJECT = 'TEST_PROC' ; 
 

但是我在环境oracle 10g下用这个语句就查不出任何内容,但是用下面语句就能查询到:
 

复制代码 代码示例:
SELECT * FROM v$access t WHERE t.OBJECT LIKE 'TEST_PROC%' ; 
-- 注意此处一定要用右匹配,避免全表扫描 

不过还好,能正确查询出想要的结果。