0

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
4

1 に答える 1