ページの先頭行へ戻る
Symfoware Server V11.0.x SQLリファレンス
Symfoware

3.15 CREATE FUNCTION文(ファンクションルーチン定義)

機能

ファンクションルーチンを定義します。引数のデータ型、処理結果のデータ型およびファンクションルーチンの処理を行うプログラムを指定します。

記述形式

構文の構成

参照項番

権限

一般規則

ルーチン名
  • 定義するファンクションルーチンの名前を指定します。

  • ルーチン名には、36文字以内の先頭が英字で始まる英数字、または18文字以内の日本語文字列指定します。

  • ルーチン名はスキーマ内で、一意の名前でなければなりません。

  • ファンクションルーチン定義がスキーマ定義に含まれる場合、ルーチン名のスキーマ名の修飾を省略した場合は、スキーマ定義で指定したスキーマ名で修飾したとみなされます。また、スキーマ名で修飾する場合は、スキーマ定義で指定したスキーマ名であることが必要です。

データ型
  • ファンクションルーチンの引数となるデータ型を指定します。ファンクションルーチンの処理を行うC言語アプリケーションには、ここで指定したデータ型で引数が通知されます。

戻りデータ型
  • ファンクションルーチンの処理結果のデータ型のデータ型を指定します。

シンボル名
  • ファンクションルーチンの処理を行うC言語アプリケーションのオブジェクトのシンボル名を指定します。シンボル名に指定できる長さは、256バイト以内です。

ライブラリ
  • ファンクションルーチンの処理を行うC言語アプリケーションの実行モジュールのライブラリのパスを指定します。ライブラリのパスに指定できる長さは、256バイト以内です。

クラスタシステムでの利用
  • クラスタシステムでのファンクションルーチンの処理を行うプログラムの格納場所は、各ノードに同一のディレクトリを作成し、同じプログラムを格納します。

使用例

SolarisLinuxSolaris/Linuxの場合
ファンクションルーチン“FUNC1”として、引数のデータ型、処理結果のデータ型、“FUNC1”を実行するCプログラムの関数“user_apl1”、“user_apl1”を格納しているライブラリ“/usr/local/lib/linmain1.so”を定義します。

CREATE FUNCTION S1.FUNC1
  (IN INTEGER,IN INTEGER)
  RETURNS INTEGER
  LANGUAGE C NAME 'user_apl1'
  LIBRARY '/usr/local/lib/linmain1.so'

WindowsWindowsの場合
ファンクションルーチン“FUNC1”として、引数のデータ型、処理結果のデータ型、“FUNC1”を実行するCプログラムの関数“user_apl1”、“user_apl1”を格納しているライブラリ“D:\FORSYMFO\FUNCLIB\USERFUNC001.DLL”を定義します。

CREATE FUNCTION S1.FUNC1
  (IN INTEGER,IN INTEGER)
  RETURNS INTEGER
  LANGUAGE C NAME 'user_apl1'
  LIBRARY 'D:\FORSYMFO\FUNCLIB\USERFUNC001.DLL'