Java で作成した小さな関数の次の CREATE FUNCTION コードがあります。これは単純な関数で、修正ユリウス日を倍精度で変換し、そのタイムスタンプを文字列として返します。この関数を使用して、スキーマにビューを作成したいと思います。
CREATE FUNCTION to_date_string(mjd DOUBLE)
RETURNS VARCHAR(50)
LANGUAGE JAVA DETERMINISTIC NO SQL PARAMETER STYLE JAVA
SPECIFIC to_date_string_from_utc_mjd
EXTERNAL NAME 'CLASSPATH:org.kls.md.sqljrt.StringUtil.toFormat';
これを小さな JAR ファイルにコンパイルしました。
RDBMS が関数を見つけて呼び出すことができるように、これを登録するにはどうすればよいですか? このファイルを、hsqldb.jar ファイル、server.properties ファイル、データベース ファイルと同じディレクトリに配置しようとしました。無知な感じ。
Squirrel-SQL を使用して、ポート 9001 のサーバー モードで実行されている HSQLDB 2.3.0 スナップショット 50 に対して SQL コマンドを実行しています。Squirrel によって報告されたエラー メッセージは次のとおりです。
Error: user lacks privilege or object not found java.lang.ClassNotFoundException: org.kls.md.sqljrt.StringUtil org.kls.md.sqljrt.StringUtil in statement [CREATE FUNCTION to_date_string(mjd DOUBLE)
RETURNS VARCHAR(50)
LANGUAGE JAVA DETERMINISTIC NO SQL PARAMETER STYLE JAVA
SPECIFIC to_date_string_from_utc_mjd
EXTERNAL NAME 'CLASSPATH:org.kls.md.sqljrt.StringUtil.toFormat']
SQLState: 42501
ErrorCode: -26