存儲過程已編譯
1. 什麼是存儲過程有什麼優點
存儲過程是事先經過編譯並存儲在資料庫中的一段sql語句的集合,調用存儲過程可以簡化應用開發人員的很多工作,減少數據在資料庫和應用伺服器之間的傳輸,對於提高數據處理的效率是有好處的。
優點:
1、重復使用:存儲過程可以重復使用,從而可以減少資料庫開發人員的工作量。
2、減少網路流量:存儲過程位於伺服器上,調用的時候只需要傳遞存儲過程的名稱以及參數就可以了,因此降低了網路傳輸的數據量。
3、安全性:參數化的存儲過程可以防止SQL注入式攻擊,而且可以將Grant、Deny以及Revoke許可權應用於存儲過程。
(1)存儲過程已編譯擴展閱讀:
存儲過程的缺點:
1、更改比較繁瑣:如果更改范圍大到需要對輸入存儲過程的參數進行更改,或者要更改由其返回的數據,則仍需要更新程序集中的代碼以添加參數、更新 GetValue() 調用,等等,這時候估計比較繁瑣。
2、可移植性差:由於存儲過程將應用程序綁定到 SQL Server,因此使用存儲過程封裝業務邏輯將限制應用程序的可移植性。如果應用程序的可移植性在您的環境中非常重要,則需要將業務邏輯封裝在不特定於 RDBMS 的中間層中。
2. 存儲過程經過編譯保存在資料庫中這句話對嗎
這句話沒有問題啊
存儲過程在創建時就在資料庫伺服器上進行了編譯並存儲在資料庫中了,存儲過程運行要比單個的SQL語句塊要快。並且在調用時只需要提供存儲過程名和必要的參數信息,所以在一定程度上也可以減少網路流量、減輕網路負擔。所以在項目中會選擇將一些復雜的sql業務邏輯轉用存儲過程來實現以提高系統的性能
3. 存儲過程一直報錯 但是編譯成功了 也沒有錯 調用時一直不成功報錯
下面是問題:
Oraclede 環境中,客戶那邊提出,執行存儲過程時出錯,信息:DBCustomException: ORA-00900: invalid SQL statement
關於這個問題之前也遇到過,一直找不到原因,沒解決,時好時壞,,由於客戶大部分是SQL Server,也就沒太在意,現在終於麻煩來了。
我用自己創建的用戶,通過P/L SQL 登陸,執行以下語句
--創建表
create table ttt
(
aa varchar(20)
)
--創建存儲過程
CREATE OR REPLACE PROCEDURE myproc
AS BEGIN
select * from ttt;
END
--執行
exec myproc
執行存儲過程時,開始報錯:ORA-00900:無效SQL語句 (上面那個錯誤的中文版-_-!)
這時候看右邊的存儲過程如下,有個紅叉,
4. pgadmin4 編譯存儲過程
我知道利用c++語句編譯儲存
1)更改資料庫目錄下的postgresql.conf,加入如下紅色語句:
#shared_preload_libraries = '' # (change requires restart)(這個系統默認下是注釋掉的,在這句下面加入下面語句)
shared_preload_libraries = '$libdir/plugins/plugin_debugger'(這是新加入的)
2)重新啟動pg服務
3)在要進行調試的資料庫里執行pldbgapi.sql文件,這個文件在你pg安裝目錄的share/postgresql/contrib/下面
調試pg的function
1)打開pgadmin4,打開你要調試的資料庫,在你要調試的function上右擊,這時你會發現多了一項Debugging,占擊子項中的debug就可對function進行調試了。
5. PLSQL修改了存儲過程如何編譯保存
如果是在plsql developer中修改的,可以直接點那個齒輪圖標,或者F8即可編譯。
如果是在sqlplus中,那就敲入修改後的過程代碼(create or replace procere...),最後以/結尾運行即可。
6. 關於sqlserver存儲過程的編譯的問題
只編譯一次。
在發布存儲過程時就編譯一次,頁面上只要調用就可以,兩次打開就是調用兩次存儲過程
7. 我在PL/SQL Developer 上寫的存儲過程,已經編譯了,為何執行不了,里邊的操作都沒實現到,求高手解助。
你的存儲過程能執行? 建議你先到命令行下執行下,show error 把錯誤先改掉,現在就有好多錯誤了。。
8. oracle存儲過程提示編譯完成但存在錯誤,如何查看錯誤
1、首先打開PL/SQL Developer軟體,新建sql窗口。