于是我就直接在上面改字段,在点打钩(记入改变)的时候提示,记录被另一个用户锁住,一开始还以为整个表被锁住了,后来发现,仅仅是这个字段不能改变,其他的字段可以。
网上找了资料,发现是:当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况造成的。网上也给出了答案:

1、查看数据库锁,诊断锁的来源及类型:

select object_id,session_id,locked_mode from v\(locked_object; 或者用以下命令: select b.owner,b.object_name,l.session_id,l.locked_mode from v\)locked_object l, dba_objects b
where b.object_id=l.object_id

SELECT lpad(' ',decode(l.xidusn ,0,3,0))||l.oracle_username User_name,
o.owner,o.object_name,o.object_type,s.sid,s.serial#
FROM v\(locked_object l,dba_objects o,v\)session s
WHERE l.object_id=o.object_id
AND l.session_id=s.sid
ORDER BY o.object_id,xidusn DESC

2、找出数据库的serial#,以备杀死:

select t2.username,t2.sid,t2.serial#,t2.logon_time
from v\(locked_object t1,v\)session t2
where t1.session_id=t2.sid order by t2.logon_time;

3、杀死该session

alter system kill session 'sid,serial#'
用步骤2中查出来的记录,对应进该语句删除

就是这样子,以下是我操作的方法:

第一步:(只是用于查看哪些表被锁住,真正有用的是第二、第三步)

select b.owner,b.object_name,l.session_id,l.locked_mode
from v$locked_object l, dba_objects b
where b.object_id=l.object_id
后:
OWNER OBJECT_NAME SESSION_ID LOCKED_MODE
1 BSZCGL TDISPOSE_ACCEPT_F 1115 3
2 BSZCGL TDISPOSE_ACCEPT_F 1097 3
3 BSZCGL TDISPOSE_ACCEPT_Z 1116 3
4 BSZCGL TDISPOSE_ACCEPT_Z 1111 3
5 BSZCGL TDISPOSE_ACCEPT_Z 1103 3
6 BSZCGL TDISPOSE_ACCEPT_Z 1100 3
7 BSZCGL TDISPOSE_ACCEPT_Z 1097 3
8 BSZCGL TDISPOSE_ACCEPT_Z 1092 3
9 BSZCGL TDISPOSE_DAMAGE_Z 1106 3
10 BSZCGL TZC6_22CL 1097 3

可以看出,那些表被锁住

第二步:

select t2.username,t2.sid,t2.serial#,t2.logon_time
from v\(locked_object t1,v\)session t2
where t1.session_id=t2.sid order by t2.logon_time;
后:
USERNAME SID SERIAL# LOGON_TIME
1 BSZCGL 1115 132 2011-12-6 14:51:35
2 BSZCGL 1097 116 2011-12-6 14:51:57
3 BSZCGL 1097 116 2011-12-6 14:51:57
4 BSZCGL 1097 116 2011-12-6 14:51:57
5 BSZCGL 1111 155 2011-12-6 14:56:29
6 BSZCGL 1103 292 2011-12-6 14:57:34
7 BSZCGL 1116 388 2011-12-6 15:04:56
8 BSZCGL 1100 240 2011-12-6 15:08:13
9 BSZCGL 1106 228 2011-12-6 15:26:20
10 BSZCGL 1092 10 2011-12-6 15:26:46

第三步:(关键)

执行:(alter system kill session 'sid,serial#')具体如下:
alter system kill session '1115,132'
alter system kill session '1097,116'
alter system kill session '1111,155'
alter system kill session '1103,292'
alter system kill session '1116,388'
alter system kill session '1100,240'
alter system kill session '1106,228'
alter system kill session '1092,10'
执行成功,会提示执行完毕!
有可能执行完一条之后,其他的ID也跟着消失,执行完3后,在执行2,检查时候清除完毕

oracle 被另一个用户锁定的更多相关文章

  1. oracle "记录被另一个用户锁定"

    出现的原因是有人对某一条数据进行了修改,oracle会通过这个事务记住这条数据,若修改的人没有进行提交或进行回滚记录,oracle是不允许对这条数据在此进行修改的,在这种情况下你要进行修改数据,则会被 ...

  2. Oracle报错>记录被另外一个用户锁定

    原因 当一个用户对数据进行修改时,若没有进行提交或者回滚,Oracle不允许其他用户修改该条数据,在这种情况下修改,就会出现:"记录被另外一个用户锁定"错误. 解决 查询用户.数据 ...

  3. ORACLE的表被 另一个用户锁定,如何解除..

    SELECT object_name, machine, s.sid, s.serial# FROM gv$locked_object l, dba_objects o, gv$session s W ...

  4. oracle授权另外一个用户访问自己创建的数据对象

    oracle安装好之后,有一个默认的scott用户,该用户有一个默认的emp表,怎样让新创建的用户也能够访问这个表呢? 授权xiaoming这个用户访问emp表,但是xiaoming只有select权 ...

  5. oracle中创建一个用户,只能查看指定的视图,如何授权,创建别名

    1.create user A identified by Apassword,创建用户,用户名是A,密码是Apassword2.grant connect to A --授予connect权限3.g ...

  6. oracle如何清空一个用户下的所有表中的数据?

    -- 大概 这个样子,如果没有 FK 的话,一下子就都删掉了. begin for x in (select table_name from user_tables) loop execute imm ...

  7. oracle怎么把一个用户下的表复制给另一个用户?(授予表权限)

    //把system读写权限 授权给scottselect 'Grant all on '||table_name||' to scott;' from all_tables where owner = ...

  8. Oracle 导入导出 创建用户等

    localhost:1158/emD:\app\Administrator\product\11.2.0\dbhome_1\bin\imp.exe log  path  E:\app\Administ ...

  9. Oracle开发:创建一个用户并分配表空间和分配权限

    -- 创建一个用户并分配表空间和分配权限 -- 以sysdba登录 oracle@sha-col-oracle-2:~> sqlplus / as sysdba SQL*Plus: Releas ...

随机推荐

  1. PB常用事件

    1.window中的事件 事件名                  触发的时机 01.Activate            在窗口激活之前触发 02.Clicked             当用户用 ...

  2. Nginx与Tomcat集成

    Nginx用来处理静态页面的请求,JSP交给Tomcat处理 安装JDK 安装后,配置好JAVA_HOME和PATH Mac查看JAVA_HOME路径的方法:/usr/libexec/java_hom ...

  3. 【bzoj2959】长跑 LCT+并查集

    题目描述 某校开展了同学们喜闻乐见的阳光长跑活动.为了能“为祖国健康工作五十年”,同学们纷纷离开寝室,离开教室,离开实验室,到操场参加3000米长跑运动.一时间操场上熙熙攘攘,摩肩接踵,盛况空前.为了 ...

  4. 纪中集训总结 && 新学期目标

    于是紧接着又发了第二篇. 关于这次去完纪中以后的感想,写完后总觉得少了些什么,因此就发一篇小目标集合来凑数补充一下吧. Part I:图论 这方面我去之前就是很有自信,事实证明像基础的最短路.生成树什 ...

  5. [blockchain-035]eos的部署安装智能合约

    0.参考资料 https://github.com/EOSIO/eos/wiki 1. eos的github地址 https://github.com/EOSIO/eos 2.下载eos源码 git ...

  6. 交叉编译HTOP并移植到ARM嵌入式Linux系统

    原创作品,允许转载,转载时请务必以超链接形式标明文章.作者信息和本声明,否则将追究法律责任. 最近一直在完善基于Busybox做的ARM Linux的根文件系统,由于busybox是一个精简的指令集组 ...

  7. 70种简单常用的JS代码

    1.后退 前进      <input type="button" value="后退" onClick="history.go(-1)&quo ...

  8. 「BZOJ4029」[HEOI2015] 定价 贪心

    「BZOJ4029」[HEOI2015] 定价 2015年4月28日2,7490 Description 在市场上有很多商品的定价类似于 999 元.4999 元.8999 元这样.它们和 1000 ...

  9. NFS排错案例

    1.检验rpcinfo从客户端 # rpcinfo -p nfsserverip ,可以看到服务器端开的tcp/udp端口.默认都是打开的,客户端可以自己选择使用TCP/UDP program ver ...

  10. mysql-\g和\G的作用

    \g 的作用是分号和在sql语句中写’;’是等效的 \G 的作用是将查到的结构旋转90度变成纵向(可以将一个很长的行转为好看的格式) 这两个只能在DOS窗口使用,可视化工具中不能使用. 例如: