SELECT AOBJECT_NAME, ASTATUS, VSESSION_ID
FROM ALL_OBJECTS A, V$LOCKED_OBJECT V
WHERE AOBJECT_ID = VOBJECT_ID
AND AOBJECT_NAME LIKE 'CUX%';
CUX%只是个例子修改成你知道的条件比如你知道的表名:emp_dept
这样你知道session_id了你就好解决了kill掉这个session
alter system kill session 'sid,serial#' 后面的参数是可以从v$session这个视图中取出来的
这样就能解决了锁表:LOCK TABLE tablename IN 锁模式 MODE;
解锁:commit或rollback;
锁模式有以下几种:
ROW SHARE
ROW SHARE permits concurrent access to the locked table but prohibits users from locking the entire table for exclusive access ROW SHARE is synonymous with SHARE UPDATE, which is included for compatibility with earlier versions of Oracle Database
ROW EXCLUSIVE
ROW EXCLUSIVE is the same as ROW SHARE, but it also prohibits locking in SHARE mode ROW EXCLUSIVE locks are automatically obtained when updating, inserting, or deleting
SHARE UPDATE
See ROW SHARE
SHARE
SHARE permits concurrent queries but prohibits updates to the locked table
SHARE ROW EXCLUSIVE
SHARE ROW EXCLUSIVE is used to look at a whole table and to allow others to look at rows in the table but to prohibit others from locking the table in SHARE mode or from updating rows
EXCLUSIVE
EXCLUSIVE permits queries on the locked table but prohibits any other activity on it
1创建测试表,如下图。
createtabletest_lock(idnumber,valuevarchar2(200));
2执行append语句;并且不做提交,insert/+append/intotest_lockvalues(1,1)如下图。
3再次执行清表语句,truncatetabletest_lock;报锁表错误,如下图。
4查看锁表语句,发现被锁表
selectbobject_name,t
fromv$locked_objectt,user_objectsb
wheretobject_id=bobject_id
注意事项:
简化数据:可以将复杂的查询创建为其他人可以使用的视图,而不必了解复杂的业务或逻辑关系。这简化并掩盖了视图用户数据的复杂性。
表结构设计的补充:在设计的系统才刚刚开始,大部分的程序直接访问数据表结构,但是随着业务的变化,系统更新,等等,引起了一些表结构不适用,这次修改系统的表结构太大,开发成本较高的影响。
这个时候可以创建一个视图来补充表结构设计,降低开发成本。程序可以通过查询视图直接获得它想要的数据。
添加安全性:视图可以向用户显示表中的指定字段,而不是向用户显示表中的所有字段。在实际开发中,视图通常作为提供数据的一种方式提供,并将只读权限提供给第三方以供查询使用。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)