當前位置:首頁 » 服務存儲 » 存儲過程禁止編譯
擴展閱讀
怎麼屏蔽硬碟壞道 2022-11-27 00:15:50
C語言中如何計算因子 2022-11-27 00:14:43
雲存儲的網址怎麼保存 2022-11-27 00:13:41

存儲過程禁止編譯

發布時間: 2022-09-25 11:30:23

A. pls-00103存儲過程編譯失敗

1. CURSOR curXXXX IS select .... from ... 而不用 for 2. item = @item ,@item是sqlserver的變數定義方法吧? 這兒能不能好? 我不確定 3. company = company code = code 到底哪個是欄位名、那個是變數名,建議不要用和欄位名相同的變數名。

B. 存儲過程有什麼優缺點為什麼要用存儲過程

存儲過程是一組予編譯的SQL語句
它的優點:1.允許模塊化程序設計,就是說只需要創建一次過程,以後在程序中就可以調用該過程任意次。
2.允許更快執行,如果某操作需要執行大量SQL語句或重復執行,存儲過程比SQL語句執行的要快。

3.減少網路流量,例如一個需要數百行的SQL代碼的操作有一條執行語句完成,不需要在網路中發送數百行代碼。
4.更好的安全機制,對於沒有許可權執行存儲過程的用戶,也可授權他們執行存儲過程。

C. oracle 創建簡單存儲過程出現編譯錯誤

create procere axx_song
as
--測試
count_num number :=0; --聲明一個變數接收我們的結果
begin
select count(*) into count_num from alert_qt;
dbms_output.put_line(count_num);--這個函數是輸出信息到控制台.
end axx_song;

這個才是存儲過程.區別於存儲函數..函數必須有返回值.而存儲過程可以沒有,

D. 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

E. 什麼是存儲過程有什麼優點

存儲過程是事先經過編譯並存儲在資料庫中的一段SQL語句的集合,調用存儲過程可以簡化應用開發人員的很多工作,減少數據在資料庫和應用伺服器之間的傳輸,對於提高數據處理的效率是有好處的。

優點:

1、重復使用:存儲過程可以重復使用,從而可以減少資料庫開發人員的工作量。

2、減少網路流量:存儲過程位於伺服器上,調用的時候只需要傳遞存儲過程的名稱以及參數就可以了,因此降低了網路傳輸的數據量。

3、安全性:參數化的存儲過程可以防止SQL注入式攻擊,而且可以將Grant、Deny以及Revoke許可權應用於存儲過程。

(5)存儲過程禁止編譯擴展閱讀

存儲過程的缺點:

1、更改比較繁瑣:如果更改范圍大到需要對輸入存儲過程的參數進行更改,或者要更改由其返回的數據,則仍需要更新程序集中的代碼以添加參數、更新 GetValue() 調用,等等,這時候估計比較繁瑣。

2、可移植性差:由於存儲過程將應用程序綁定到 SQL Server,因此使用存儲過程封裝業務邏輯將限制應用程序的可移植性。如果應用程序的可移植性在您的環境中非常重要,則需要將業務邏輯封裝在不特定於 RDBMS 的中間層中。

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

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

G. 關於sqlserver存儲過程的編譯的問題

只編譯一次。
在發布存儲過程時就編譯一次,頁面上只要調用就可以,兩次打開就是調用兩次存儲過程

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

可用SYS登錄,然後查詢如下語句:
查找存儲過程OPERATIONDATA_IMP被哪些session鎖住而無法編譯
select * FROM dba_ddl_locks where name =upper('OPERATIONDATA_IMP');
從而得到session_id,然後通過
select t.sid,t.serial# from v$session t
where t.sid=&session_id;
得到sid和serial#
最後用alter system kill session 'sid,serial#'; kill 相關session即可。

I. ORACLE存儲過程如下:不能編譯,不能刪除,存儲過程顯示紅X。代碼沒有錯因為在別的庫中葉是這段代碼。

確認是否用到了不存在的表,或者因為許可權原因某些能訪問的資料庫對象不能訪問