下面是我用Java编写的一个小函数的创建函数代码。这是一个简单的函数,用于转换修改后的Julian Day数字,即双精度型,并将时间戳作为字符串返回。我想使用这个函数在Schema中创建一个视图。
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发布于 2013-06-19 11:26:28
您只需将其放在类路径中。jar JVM在哪个jar中找到类取决于您使用的类加载器。如果需要指定jar,则使用write your own classloader。
https://stackoverflow.com/questions/17182310
复制相似问题