Oracle資料庫update語句執行卡住
問題
開發的時候debug到一條update的sql語句時程式就不動了,然後我就在plsql上試了一下,發現plsql一直在顯示正在執行,等了好久也不出結果。但是奇怪的是執行其他的select語句卻是可以執行的。
原因和解決方法
這種只有update無法執行其他語句可以執行的其實是因為記錄鎖導致的,在oracle中,執行了update或者insert語句後,都會要求commit,如果不commit卻強制關閉連線,oracle就會將這條提交的記錄鎖住。由於我的java程式中加了事務,之前debug到一半的時候我強制把工程終止了,這樣就導致沒有執行事務提交,所以oracle將程式碼中update那一條的記錄鎖了。可通過下面兩步解決:
1.首先查詢鎖定記錄
SELECT s.sid, s.serial# FROM v$locked_object lo, dba_objects ao, v$session s WHERE ao.object_id = lo.object_id AND lo.session_id = s.sid;
- 1
2.然後刪除之
ALTER system KILL session 'SID,serial#'
相關推薦
Oracle資料庫update語句執行卡住
問題開發的時候debug到一條update的sql語句時程式就不動了,然後我就在plsql上試了一下,發現plsql一直在顯示正在執行,等了好久也不出結果。但是奇怪的是執行其他的select語句卻是可以執行的。原因和解決方法這種只有update無法執行其他語句可以執行的其實是因為記錄鎖導致的,在oracle中
轉載:oracle執行update語句時卡住問題分析及解決辦法
oracle執行update語句時卡住問題分析及解決辦法 這篇文章主要介紹了oracle執行update語句時卡住問題分析及解決辦法,涉及記錄鎖等相關知識,具有一定參考價值,需要的朋友可以瞭解。 問題 開發的時候debug到一條update的sql語句時程式就不動了,然後我就
oracle中for update語句執行時間過長的問題
oracle執行查詢語句SELECT s.sid, s.serial# FROM v$locked_object lo, dba_objects ao, v$session s WHERE ao.object_id = lo.object_id AND lo.session_id = s.sid 查出的兩個字
[轉]Oracle的update語句優化研究
lis 錯誤 wid class 插入 集合 top 執行 gin 原文地址:http://blog.csdn.net/u011721927/article/details/39228001 一、 update語句的語法與原理 1. 語法 單表:
mySQL資料庫Sql語句執行效率檢查--Explain命令
原文連結:https://www.jianshu.com/p/ea3fc71fdc45 EXPLAIN Output Columns 列名 說明 id 執行編號,標識select所屬的行。如果在語句中沒子查詢或
oracle動態update語句
1、今天公司專案提交更新表單出錯,這個bug交給了我。 2、OK,debugger一下,發現提交的時候後臺打印出錯,提示大概就是這樣 SQLException '17004' 其實很簡單,這種錯誤一般都是說某一列傳進來的值為null,因此報錯,所以追蹤下去,發現是updat
oracle資料庫 SQL語句、內建函式大全
1、數值函式 函式 返回值 樣例 顯示 CEIL(n) 大於或等於數值n的最小整數 SELECT CEIL(10.6) FROM TABLE_NAME; 11 FLOO
Oracle資料庫SQL語句(上)
一、 建立表空間 create tablespace itheima datafile 'C:\itheima.dbf' size 100m autoextend on next 10m; 二、 建立使用者 create user itshunzi ident
Oracle資料庫 sql語句 毫秒與日期的相互轉換
一: 毫秒轉換為日期: SELECT TO_CHAR(1530867673000 / (1000 * 60 * 60 * 24) + TO_DATE('1970-01
oracle中update語句修改多個欄位
如需要修改下列資料:表名為student一般會這樣寫:update student set sname = '李四', sage = 20, sbirthday = to_date('2010-01-01', 'yyyy-mm-dd'),
update 語句執行十幾小時問題解決
開發朋友求助,某條update語句已執行了十幾小時,仍無法結束,語句如下: UPDATE CHECK_CRMHLR_HLR T SET T.HLR_NET_TYPE_CODE = (SELECT DECODE(A.NET_TYPE_CODE,
Oracle的update語句set裡使用子查詢的例子解釋
終於領略到oracle的強大,可能其他資料庫的也可以.標準SQL? Update ds_wap_query_top_count c Set active_num = (Select nvl(active_num, 0) From
ORACLE資料庫查詢語句使用注意事項
2、儘量少用IN操作符,基本上所有的IN操作符都可以用EXISTS代替。 3、不用NOT IN操作符,可以用NOT EXISTS或者外連線+替代。 4、Oracle在執行IN子查詢時,首先執行子查詢,將查詢結果放入臨時表再執行主查詢。而EXIST則是首先檢查主查詢,然後執行子查詢直到找到第一個匹配項。NOT
ORACLE資料庫-查詢語句SELECT
---------查詢語句 --完整語法描述: --SELECT [ALL|DISTINCT] TOP n[PERCENT] WITH TIES select_list --[INTO[new table name]] --[FROM{table_name|view_nam
ORACLE資料庫誤操作執行了DELETE,該如何恢復資料?
作為一個程式設計師,資料庫操作是必須的,但是如果操作失誤,一般都會造成比較嚴重的後果。 今天一不小心,幹了一件揪心的事情,將正在使用的組織機構誤操作執行了delete,頓時大腦有點缺氧,感覺蒙圈了(相信對於沒有資料備份和回滾經驗的小夥伴來說都是這樣的感受),但是一想,資料庫
Oracle中select語句執行過程
通過from子句中找到需要查詢的表 通過where子句進行非分組函式篩選判斷 通過group by子句完成分組操作 通過having字句完成組函式篩選判斷 通過select字句選擇顯示的列或表示式及組函式 通過order by字句進行排序操作
遇到的問題------資料庫 update 語句出現錯誤的解決方法
我在mysql 中,用了以下語句 UPDATE benben.STUDENT SET SAGE = SAGE+1; 時出現了 Error Code: 1175. You are using safe update mode and you tried to update
Oracle 中用 update 語句更新date, timestamp欄位的格式
更新date和timestamp資料型別的欄位,分別需要用to_date()和to_timestamp()函式轉換一下才可更新成功。 例:UPDATE table_A SET date_A = TO_DATE('12-11-27', 'RR-MM-DD'),
資料庫的語句執行順序(必看)
Author:王勤為 1.問題:如下2條語句的具體執行順序是什麼呢,有什麼區別,哪條語句效率更高? (1).select * from tb1 a join tb2 b on a.id=b.id where a.time between t
oracle資料庫sql語句語法擴充套件
修改欄位長度 alter table student modify(xm varchar2(30)); 修改欄位的型別/或是名字(不能有資料) alter table student modify(xm char(30)); 修改表的名字 rename studen