10.2.3 外部Cストアドルーチンの定義
外部Cストアドルーチンを定義する場合は,CREATE PROCEDURE又はCREATE FUNCTIONを使用します。CREATE PROCEDURE又はCREATE FUNCTIONで,C関数と手続き名,又はC関数と関数名との関連づけをします。
-
Cストアドプロシジャの場合
CREATE PROCEDUREを使用して,C言語で記述したC関数をCストアドプロシジャとして登録します。
-
Cストアドファンクションの場合
CREATE FUNCTIONを使用して,C言語で記述したC関数をCストアドファンクションとして登録します。
外部Cストアドルーチンの定義例を次の図に示します。
- パブリックルーチンの定義
-
他ユーザが定義した外部Cストアドルーチンを使用する場合は,UAP中からストアドルーチンを呼び出すときに,所有者の認可識別子とルーチン識別子を指定する必要があります。
しかし,CREATE PUBLIC PROCEDURE又はCREATE PUBLIC FUNCTIONを実行してパブリックルーチンとして定義すると,他ユーザが定義した外部Cストアドルーチンを使用する場合でも,UAP中からストアドルーチンを呼び出すときに,所有者の認可識別子を指定する必要がなくなります(ルーチン識別子だけ指定します)。
- 外部Cストアドルーチンの再定義
-
Cプログラムの修正などによって,一度定義した外部Cストアドルーチンを再度定義する場合は,ALTER PROCEDURE又はALTER ROUTINEを使用します。
- 外部Cストアドルーチンの削除
-
外部Cストアドルーチンを削除する場合は,DROP PROCEDURE又はDROP FUNCTIONを使用します。
また,パブリックルーチンを削除する場合は,DROP PUBLIC PROCEDURE又はDROP PUBLIC FUNCTIONを使用します。なお,パブリックルーチンを削除できるのは,パブリックルーチンを定義したユーザ,又はDBA権限を持っているユーザだけです。