當前位置:首頁 » 存儲配置 » 存儲過程編譯卡死

存儲過程編譯卡死

發布時間: 2022-04-14 01:02:43

⑴ pl/sql編譯腳本時卡死是為什麼,好像是什麼session的問題

兩個session同時編譯了一個腳本。
第二個編譯的會被鎖死。
比如兩個用戶同時在改一個存儲過程。就會出現這樣的問題

pl/sql用可以看到當前session的狀態,可以看到死鎖的進程。菜單裡面找下看看

祝進步!
望採納!

⑵ 如何強行中止存儲過程的執行

找你的DBA把你這個session給KILL掉

⑶ pl/sql 中建個一個存儲過程,編譯不過去,問題在哪

create table abc,這個表abc,什麼都沒有指定,至少要指定ABC表的一個欄位,還有欄位的類型。
另外,這個存儲過程只能執行一次,因為執行一次之後,abc表被創建了,再執行的時候,就會創建重復的名字了。所以在執行之前,你最好先判斷庫中有沒有abc表,如果有,先執行drop table abc。再創建。

⑷ plsql編譯存儲過程卡死

1、查看一下Oracle資料庫中的正在運行的進程是否正在運行該程序,如果有的話把進程停止
2、全部關閉重開或者換一個PLSQL試一下,看看是不是PLSQL本身導致的問題
3、如果都不好用先嘗試重啟一下PLSQL所在的伺服器(如果可以重啟的話)
先試試上述方法

⑸ SQL存儲過程比SQL語句慢,甚至卡死

樓主,你好!這個排版屌爆了%>_<%

USE[HERP_BHYY]
GO
/******對象:StoredProcere[dbo].[sp_]腳本日期:12/03/201308:36:35******/
SETANSI_NULLSON
GO
SETQUOTED_IDENTIFIERON
GO
ALTERPROCEDURE[dbo].[sp_]
@ImpDateasDATETIMEASBEGIN
--SETNOCOUNTON;
DECLARE@ST_DATEASDATETIME
DECLARE@ED_DATEASDATETIME
DECLARE@TEMP_DATEDATETIME
IF@ImpDateisnotnull
begin
SET@ST_DATE=LEFT(@ImpDate,10)
SET@ED_DATE=dateadd(day,1,@ST_DATE)
end
deletehisdb2.dbo.his_charge_acc_o
wherecharge_date>=@ST_DATEandcharge_date<@ed_date
insert=""into=""hisdb2.dbo.his_charge_acc_o=""
select=""invoice_type=""from=""
where=""charge_date="">=@ST_DATEandcharge_date<@ED_DATE
end

這樣不是挺好么?

上面的SQL語句貌似漏了什麼東西,你自己看看

⑹ PLSQL修改了存儲過程如何編譯保存

如果是在plsql developer中修改的,可以直接點那個齒輪圖標,或者F8即可編譯。
如果是在sqlplus中,那就敲入修改後的過程代碼(create or replace procere...),最後以/結尾運行即可。

⑺ ORACLE 存儲過程無法編譯,編譯就卡死

你怎麼查的鎖?v$locked_object?dba_ddl_locks查了沒,可能是ddl的鎖,如果不能編譯,一編譯就死,也可能是ddl的鎖導致的,以前碰到過。如果能找到鎖,那就簡單了。
不過還碰到過一種特別扯淡的情況,關掉自己的連接,然後換一台電腦從新來過,就OK了,這種情況也碰到過。

⑻ ORACLE 存儲過程被鎖,編譯不了,怎麼解鎖

一些ORACLE中的進程被殺掉後,狀態被置為"killed",但是鎖定的資源很長時間不釋放,有時實在沒辦法,只好重啟資料庫。現在提供一種方法解決這種問題,那就是在ORACLE中殺不掉的,在OS一級再殺。
1.下面的語句用來查詢哪些對象被鎖:
select object_name,machine,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;
2.下面的語句用來殺死一個進程:
alter system kill session '24,111'; (其中24,111分別是上面查詢出的sid,serial#)
【注】以上兩步,可以通過Oracle的管理控制台來執行。
3.如果利用上面的命令殺死一個進程後,進程狀態被置為"killed",但是鎖定的資源很長時間沒有被釋放,那麼可以在os一級再殺死相應的進程(線程),首先執行下面的語句獲得進程(線程)號:
select spid, osuser, s.program
from v$session s,v$process p
where s.paddr=p.addr and s.sid=24 (24是上面的sid)
4.在OS上殺死這個進程(線程):
1)在unix上,用root身份執行命令:
#kill -9 12345(即第3步查詢出的spid)
2)在windows(unix也適用)用orakill殺死線程,orakill是oracle提供的一個可執行命令,語法為:
orakill sid thread
其中:
sid:表示要殺死的進程屬於的實例名
thread:是要殺掉的線程號,即第3步查詢出的spid。
例:c:>orakill orcl 12345

⑼ oracle 存儲過程無法編譯,刪除,一旦執行該操作PLSQL就會出現未響應

存在無效對象,用plsql菜單中的工具先「編譯無效對象」

⑽ oracle存儲過程為什麼一編譯就掛死,是鎖住了嗎是不是跟表一樣有鎖的機制怎麼解鎖呢

不是因為鎖住了,是因為你編譯的時候,正好有人在調用你的那個存儲過程,

熱點內容
編譯路由器固件選擇 發布:2024-05-19 03:56:28 瀏覽:39
手機f加密 發布:2024-05-19 03:28:47 瀏覽:225
用什麼密碼寫日記 發布:2024-05-19 03:27:57 瀏覽:303
資料庫access2003 發布:2024-05-19 02:49:39 瀏覽:620
碧藍航線pc掛機腳本 發布:2024-05-19 02:30:03 瀏覽:589
腳本fir 發布:2024-05-19 02:28:57 瀏覽:261
阿里雲獨享伺服器 發布:2024-05-19 02:23:54 瀏覽:253
織夢源碼ga 發布:2024-05-19 02:23:20 瀏覽:571
java文件名後綴 發布:2024-05-19 02:14:39 瀏覽:956
快手點榜腳本 發布:2024-05-19 02:08:44 瀏覽:163