當前位置:成語大全網 - 新華字典 - 如何在oracle 觸發器中執行mssql數據庫中的存儲過程的相關推薦

如何在oracle 觸發器中執行mssql數據庫中的存儲過程的相關推薦

1:什麽叫存儲過程?

在oracle中,可以在數據庫中定義子程序,這種程序塊叫存儲過程(procedure),它存放在數據字典中,可以在不同用戶和應用程序中***享,並可以實現程序的優化和重用。

2:存儲過程的有點?

過程運行在服務器端,執行速度快

過程執行壹次後代碼就駐留在高速緩存中,在以後的操作中,直接調用緩存數據。

確保數據庫的安全性,可以不授權用戶直接訪問應用程序中的壹些表,而是授權用戶執行訪問數據庫的過程。

自動完成需要預先執行的任務,過程可以在系統啟動時自動運行。、

3:存儲過程的創建和執行

用戶存儲過程只能定義在當前數據庫中,可以使用sql語句或OEM創建。

默認情況下,用戶創建的存儲過程歸登錄數據庫的用戶所擁有,DBA可以把許可授權給其他用戶。

Sql命令創建存儲過程

CREATE procedure 過程名

(parameter parameter_mode date_type,….n)

IS| AS

BEGIN

SQL_STATEMENT

END 過程名

其中

Parameter表示過程的參數。

parameter_mode:參數的類型,過程參數和函數參數壹樣,有三種類型IN,OUT,IN OUT

IN 表示參數是輸入給過程的。

OUT表示采納數載過程中被賦值,可以傳給過程的外部。

IN OUT表示可以傳內,可以傳外。

調用存儲過程

直接輸入存儲過程的名字可以執行壹個已經定義的存儲過程。

存儲過程的編輯修改

修改存儲過程雖然可以和修改視圖壹樣,用ALTER procedure,但是他是用來重新編譯和驗證用的,如果要修改過程定義,建議還是用create or replace。

存儲過程的刪除

當某個過程不再需要的時候,應該將其從內存中刪除,以釋放它占用的資源。

Drop procedure 存儲過程名。

Drop procedure update_info.

觸發器

觸發器(trigger)是壹些過程,與表聯系緊密,用於保護表中的數據,當壹個基表被修改時,觸發器自動就會執行。例如出入其可以實現多個表間數據的壹致性和完整性。

壹般情況下,對表數據的操作有增刪查改,維護數據的觸發器也可以分為多種,每張基表最多可以建立12個觸發器。

1:Before insert 2:before insert fo each row; 3:after inert

4:after insert for each row 5:before update 6:before update for each row

7:after update 8:after update for each row; 9:before delete;

10:before delete for each row 11:after delete 12:after delete for each row.

利用sql語句創建觸發器

語法規則

Create or replace trigger 觸發器名

{before| after| instead of}

{delete or insertor updateof column ….n }

On 表名|視圖名

for each row []where condition]]

Sql_statement[,,,n]

參數說明

Instead of :指定在創建替代觸發器。

Of column 指定在哪些列上進行觸發。。。

創建觸發器的限制

1:觸發器中有效的語句可以包括DML語句,但是不能包括DDL,rollback,commit

,savepoint都不適用。