ストアドプロシージャは、コードの一部が後の基準にストアドプロシージャは、ストアドプロシージャの指定された名前が存在することによって与えられた場合、(しないデータベースに格納され、ユーザおよびパラメータが与えられたコンパイル、SQLをフラグメント化され、SQLステートメントの特定のセットを完了するために関数のセットであります存在がそれを実行するために)パラメータを与えていないだろう。それは、コードのSQL文の一部であり、データベースに保存されているコンパイルしているので、その効率が非常に高いですので。
次のようにストアドプロシージャを作成することです:
プロシージャプロシージャ名を作成[または交換] [(にパラメータ名を|アウトデータタイプ)]
| AS IS
の変数宣言
始める
; PLSQLサブルーチン本体を
終了し; //もしそうであれば、バックエンドはもちろんの名前を追加します。
ストアドプロシージャを呼び出します
まず:ストアドプロシージャ名(パラメータ)を呼び出します。
第二:開始
ストアドプロシージャ名(パラメータ)。
終わり;
例えば1:従業員に100を指定された昇給を与え、そして立ち上がりの賃金表と裏をプリントアウト
ストアドプロシージャを作成します。
で作成したりプロシージャaddsal(数ENO)を置き換えます
PEMPのemp%ROWTYPEの。
開始
EMPNO =エノEMPからPEMPに*を選択。
EMPセットSAL = SAL + 100 EMPNO = ENOを更新します。
DBMS_OUTPUT.PUT_LINE( 'ENAME:' || pemp.ename || || '後'(pemp.sal + 100))。
エンドaddsal。
ストアドプロシージャを呼び出します。
最初の呼び出し:呼び出しaddsal(7369);
2番目の呼び出し:
開始
addsal(ENO => 7369);
COMMIT; Oracleデータベースを手動で提出//ので、関係するすべての削除を変更する必要がありますコミット;
終了;
例2:すべての従業員の出力名と給与
ストアドプロシージャを作成します。
交換するか、作成infoempのような手順
カーソルallempはIS
EMPからSELECT *; //カーソルの作成
enempのEMPの%のROWTYPEを、
開始
オープンallempを、
ループ
allempをFETCH
enemp INTO; //カーソルからのデータを使用してサイクルをフェッチ
DBMS_OUTPUT.PUT_LINE(enemp.enameを|| '' || enemp.sal);
終了するとallemp%のNOTFOUND; //ループ条件の終了
;エンドループ
を閉じるallemp;
終了;
ストアドプロシージャを呼び出します。
まず:)(infoemp呼び出します。
第二:開始
infoemp();
END;
これらは、ストアドプロシージャ、Oracleデータベースの基本的な知識と使用されています。