Oracle插入或修改資料怎麼也不行的解決方法

2021-10-11 18:14:00 字數 933 閱讀 8322

今天在公司運算元據庫,在刪除一條資料的時候忘記提交事務了,之後就去新增別的了,但是後來發現怎麼也新增不上,所以覺的是事務鎖住了

1.直接判斷未提交事務引起的表的行鎖

1.1判斷哪個session執行了dml(insert/update/delete) 但是未提交 (commit ),引起的行鎖

select a.sid,a.

serial

#,a.username,a.event,a.wait_class,a.seconds_in_wait,a.prev_exec_start,b.locked_mode,c.owner,c.object_name,c.object_type

from v$session a

inner

join v$locked_object b

on a.sid=b.session_id

inner

join dba_objects c

on b.object_id=c.object_id

where a.wait_class=

'idle'

and a.seconds_in_wait>

10/*session空閒後一段時間還鎖定的才算有問題,這裡隨便給了個數值10秒*/

如果確認這些session確實有問題,可以直接kill掉,傳入前面語句的sid和serial#

alter system kill

session

'sid,serial#'

注:oracle有個很有趣的地方,就是kill session的時候需要填「」serial#「,是為了避免剛剛查詢的時候獲得了乙個sid,然後你打算殺掉他,在這個時間之間,打算殺掉的session結束了斷開連線,然後新的session復用了這個sid,也就是避免誤殺,sql server 直接kill可以了。

《學習 》2插入修改資料

use db 建立學生資訊表 create table student sno int unsigned not null auto increment,sname varchar 20 not null,sage tinyint unsigned not null,sbirthday dateti...

sql修改資料 oracle修改資料庫字符集

1.檢視資料庫字符集 資料庫伺服器字符集 select from nls database parameters 其 於props 是表示資料庫的字符集。客戶端字符集環境 select from nls instance parameters 其 於v parameter,表示客戶端的字符集的設定,...

Oracle 批量修改資料 Merge

merge語句是sql語句的一種。在sql server oracle資料庫中可用,mysql postgresql中不可用。merge是oracle9i新增的語法,用來合併update和insert語句。通過merge語句,根據一張表 原資料表,source table 或子查詢的連線條件對另外一...