用途
プロシージャはPL/SQLを使用して定義されます。このため、この項では一般的な情報について説明します。構文およびセマンティクスの詳細は、『Oracle Database PL/SQL言語リファレンス』を参照してください。
CREATE
PROCEDURE
文を使用すると、スタンドアロンのストアド・プロシージャまたはコール仕様を作成できます。
プロシージャとは、名前によってコールできるPL/SQL文の集合です。コール仕様は、SQLおよびPL/SQLからコールできるように、Javaメソッドまたは第三世代言語(3GL)ルーチンを宣言します。コール仕様は、コールされたときに起動するJavaメソッドをOracle Databaseに指示します。また、引数および戻り値に対して実行する型変換もデータベースに指示します。
ストアド・プロシージャには、開発、整合性、セキュリティ、パフォーマンスおよびメモリー割当ての面でいくつかのメリットがあります。
関連項目:
|
前提条件
自分のスキーマ内にプロシージャを作成または再作成する場合は、CREATE
PROCEDURE
システム権限が必要です。他のユーザーのスキーマ内にプロシージャを作成または再作成する場合は、CREATE
ANY
PROCEDURE
システム権限が必要です。
コール仕様を起動する場合、その他の権限が必要になることがあります。たとえば、Cコール仕様には、Cライブラリに対するEXECUTE
オブジェクト権限が必要です。
Oracleプリコンパイラ・プログラム内にCREATE
PROCEDURE
文を埋め込む場合、キーワードEND-EXEC
に続けて、各言語の埋込みSQL文の終了記号を記述して文を終了する必要があります。
関連項目: 詳細は、『Oracle Database PL/SQL言語リファレンス』または『Oracle Database Java開発者ガイド』を参照してください。 |
構文
プロシージャはPL/SQLを使用して定義されます。このため、このマニュアルの構文図ではSQLキーワードのみを示します。PL/SQLの構文、セマンティクスおよび例については、『Oracle Database PL/SQL言語リファレンス』を参照してください。
create_procedure::=
(plsql_procedure_source
: 『Oracle Database PL/SQL言語リファレンス』を参照。)
セマンティクス
OR
REPLACE
を指定すると、既存のプロシージャを再作成できます。この句を指定した場合、プロシージャに付与されているオブジェクト権限を削除、再作成および再付与しなくても、既存のプロシージャの定義を変更できます。プロシージャを再定義した場合、そのプロシージャは自動的に再コンパイルされます。
再定義したプロシージャに対して権限が付与されていたユーザーは、権限が再付与されなくてもそのプロシージャにアクセスできます。
ファンクション索引がプロシージャに依存している場合、索引にDISABLED
のマークが付きます。
[ EDITIONABLE | NONEDITIONABLE ]
この句を使用すると、schema
のスキーマ・オブジェクト・タイプPROCEDURE
のエディショニングが有効化されたときに、そのプロシージャをエディション・オブジェクトにするか非エディション・オブジェクトにするかを指定できます。デフォルトは、EDITIONABLE
です。エディション・オブジェクトと非エディション・オブジェクトの詳細は、『Oracle Database開発ガイド』を参照してください。
plsql_procedure_source
plsql_procedure_sourceの構文およびセマンティクスについては、『Oracle Database PL/SQL言語リファレンス』
を参照してください。