请教此表的情况是否被锁定。 一表可以select,insert. 但不能update或delete 这个表是否被锁定?为什么会出现这种情况.程序上有什么要注意的吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 一 当前用户 有 UPDATE DELETE 的权限吗?二 是否有其他的 程序同时在修改这些表 其他的就不知道了 有权限。本身程序就是对这个表进行insert,然后更新,最后删除.程序跑个把月就锁住了.只能insert.和select 不能update或delete. 有没有被锁查查 v$locked_object 查询当前用户的权限select * from role_tab_privs ; select * from user_tab_privs ; 是太慢,还是根本不行?若太慢应该是没索引吧?如果是不行,应该真的被锁了,看看程式事务是不是没提交?如执行了execute immediate 之类的。 还是要核查一下权限问题select * from user_tab_privs ; 用户对象权限select * from user_sys_privs ; 系统对像权限 查看锁表进程SQL语句1: select sess.sid, sess.serial#, lo.oracle_username, lo.os_user_name, ao.object_name, lo.locked_mode from v$locked_object lo, dba_objects ao, v$session sess where ao.object_id = lo.object_id and lo.session_id = sess.sid; 查看锁表进程SQL语句2: select * from v$session t1, v$locked_object t2 where t1.sid = t2.SESSION_ID; 杀掉锁表进程: 如有记录则表示有lock,记录下SID和serial# ,将记录的ID替换下面的738,1429,即可解除LOCK alter system kill session '738,1429'; 挺好使 别的我也不多说了 Oracle数据库访问错误 oracle數據庫保存時中文亂碼 求写oraclesql向一张表循环插入数据,有测试数据 关于update orderby 语句 问题 Oracle 导数据到MSSQL2000 如何通过设置ORACLE用户和密码只能自己访问?UP 有分 在pl\sql的命令窗口如何执行返回记录集的存储过程 怎样查询一个char列的长度? 一个有难度的分组,SQL语句(其实我不知道是不是真的有难度!) select count(distinct name, age)....? 表名可以作为参数 传递给存储过程? 请教sql问题,刚才那位仁兄的语句看似对了,但结果还是不行啊
二 是否有其他的 程序同时在修改这些表
其他的就不知道了
程序跑个把月就锁住了.只能insert.和select 不能update或delete.
select * from user_tab_privs ;
如果是不行,应该真的被锁了,看看程式事务是不是没提交?如执行了execute immediate 之类的。
select * from user_tab_privs ; 用户对象权限
select * from user_sys_privs ; 系统对像权限
select sess.sid,
sess.serial#,
lo.oracle_username,
lo.os_user_name,
ao.object_name,
lo.locked_mode
from v$locked_object lo,
dba_objects ao,
v$session sess
where ao.object_id = lo.object_id and lo.session_id = sess.sid; 查看锁表进程SQL语句2:
select * from v$session t1, v$locked_object t2 where t1.sid = t2.SESSION_ID; 杀掉锁表进程:
如有记录则表示有lock,记录下SID和serial# ,将记录的ID替换下面的738,1429,即可解除LOCK
alter system kill session '738,1429'; 挺好使 别的我也不多说了