Oracle學習之儲存過程

2021-08-01 23:06:05 字數 2190 閱讀 5945

儲存過程可以說是乙個記錄集吧,它是由一些t-sql語句組成的**塊,這些t-sql語句**像乙個方法一樣實現一些功能(對單錶或多表的增刪改查),然後再給這個**塊取乙個名字,在用到這個功能的時候呼叫他就行了

--------------建立儲存過程-----------------

create proc [ edure ] procedure_name [ ; number ]

[ [ varying ] [ = default ] [ output ]

] [ ,...n ]

[ with

][ for replication ]

as sql_statement [ ...n ]

--------------呼叫儲存過程-----------------

execute procedure_name '' --儲存過程如果有引數,後面加引數格式為:@引數名=value,也可直接為引數值value

--------------刪除儲存過程-----------------

drop procedure procedure_name --在儲存過程中能呼叫另外乙個儲存過程,而不能刪除另外乙個儲存過程

1.procedure_name :儲存過程的名稱,在前面加#為區域性臨時儲存過程,加##為全域性臨時儲存過程。

2.; number:是可選的整數,用來對同名的過程分組,以便用一條 drop procedure 語句即可將同組的過程一起除去。例如,名為 orders 的應用程式使用的過程可以命名為 orderproc;1、orderproc;2 等。drop procedure orderproc 語句將除去整個組。如果名稱中包含定界識別符號,則數字不應包含在識別符號中,只應在 procedure_name 前後使用適當的定界符。 

3.@parameter: 儲存過程的引數。可以有乙個或多個。使用者必須在執行過程時提供每個所宣告引數的值(除非定義了該引數的預設值)。儲存過程最多可以有 2.100 個引數。 

使用 @ 符號作為第乙個字元來指定引數名稱。引數名稱必須符合識別符號的規則。每個過程的引數僅用於該過程本身;相同的引數名稱可以用在其它過程中。預設情況下,引數只能代替常量,而不能用於代替表名、列名或其它資料庫物件的名稱。有關更多資訊,請參見 execute。 

4.data_type:引數的資料型別。所有資料型別(包括 text、ntext 和 image)均可以用作儲存過程的引數。不過,cursor 資料型別只能用於 output 引數。如果指定的資料型別為 cursor,也必須同時指定 varying 和 output 關鍵字。有關 sql server 提供的資料型別及其語法的更多資訊,請參見資料型別。 

說明 對於可以是 cursor 資料型別的輸出引數,沒有最大數目的限制。 

5.varying: 指定作為輸出引數支援的結果集(由儲存過程動態構造,內容可以變化)。僅適用於游標引數。 

6.default: 引數的預設值。如果定義了預設值,不必指定該引數的值即可執行過程。預設值必須是常量或 null。如果過程將對該引數使用 like 關鍵字,那麼預設值中可以包含萬用字元(%、_、 和 [^])。

7.output :表明引數是返回引數。該選項的值可以返回給 exec[ute]。使用 output 引數可將資訊返回給呼叫過程。text、ntext 和 image 引數可用作 output 引數。使用 output 關鍵字的輸出引數可以是游標佔位符。 

8.recompile: 表明 sql server 不會快取該過程的計畫,該過程將在執行時重新編譯。在使用非典型值或臨時值而不希望覆蓋快取在記憶體中的執行計畫時,請使用 recompile 選項。

9.encryption: 表示 sql server 加密 syscomments 表中包含 create procedure 語句文字的條目。使用 encryption 可防止將過程作為 sql server 複製的一部分發布。 說明 在公升級過程中,sql server 利用儲存在 syscomments 中的加密注釋來重新建立加密過程。 

10.for replication :指定不能在訂閱伺服器上執行為複製建立的儲存過程。.使用 for replication 選項建立的儲存過程可用作儲存過程篩選,且只能在複製過程中執行。本選項不能和 with recompile 選項一起使用。 

11.as :指定過程要執行的操作。

12.sql_statement :過程中要包含的任意數目和型別的 transact-sql 語句。但有一些限制。

oracle學習筆記之儲存過程

user scott sql create table mytest name varchar2 30 password varchar2 30 table created sql create or replace procedure pro sp1 is 建立乙個簡單的儲存過程 2 begin ...

Oracle之儲存過程

1 建立儲存過程,包括3部分,宣告,執行,異常處理 建立儲存過程不需要使用declare關鍵字,而是使用create or replace關鍵字 in模式引數 create or replace procedure pro insertdept is begin insert into dept v...

Oracle儲存過程學習

儲存過程是一組為了完成特定功能的 sql 語句塊,經編譯後儲存在資料庫中,使用者通過指定儲存過程的名字並給出引數 如果該儲存過程帶有引數 來執行它。1 儲存過程和函式以命名的資料庫物件形式儲存於資料庫當中。儲存在資料庫中的優點是很明顯的,因為 不儲存在本地,使用者可以在任何客戶機上登入到資料庫,並呼...