CREATE FUNCTION coverFunc( parameter-list )
RETURNS data-type
EXTERNAL NAME 'myFunction@myLibrary'
LANGUAGE C_ESQL32;
これらの文では、EXTERNAL NAME 句は関数の名前とその関数があるライブラリを示します。この例では、myFunction がライブラリのエクスポートされる関数名で、myLibrary がライブラリの名前 (たとえば、myLibrary.dll または myLibrary.so) です。
LANGUAGE 句は、関数が外部環境で呼び出されることを示しています。LANGUAGE 句では、C_ESQL32、C_ESQL64、C_ODBC32、C_ODBC64 のいずれか 1 つを指定できます。32 または 64 のサフィックスは、関数が 32 ビットまたは 64 ビットのアプリケーションとしてコンパイルされていることを示しています。ODBC 指定は、アプリケーションが ODBC API を使用することを示しています。ESQL 指定は、アプリケーションが Embedded SQL API、SQL Anywhere C API、その他の非 ODBC API を使用するか、または API を一切使用しない場合があることを示しています。
LANGUAGE 句を省略すると、関数を含むライブラリはデータベースサーバのアドレス領域にロードされます。外部関数は呼び出されるとサーバの一部として実行されます。この場合、関数が原因で障害が発生すると、データベースサーバは終了されます。したがって、関数のロードおよび実行は外部環境で行うことを推奨します。関数が原因で外部環境に障害が発生した場合、データベースサーバは実行し続けます。