我在为 Derby 数据库使用创建函数命令时遇到问题。
首先我尝试过
CREATE FUNCTION TO_DEGREES(RADIANS DOUBLE) RETURNS DOUBLE
PARAMETER STYLE JAVA NO SQL LANGUAGE JAVA
EXTERNAL NAME 'java.lang.Math.toDegrees'
接着
SELECT TO_DEGREES(3.142), BILLNO FROM SALEBILL
这绝对没问题。
现在我尝试像这样制作自己的功能:
package SQLUtils;
public final class TestClass
{
public TestClass()
{
}
public static int addNos(int val1, int val2)
{
return(val1+val2);
}
}
其次是
CREATE FUNCTION addno(no1 int, no2 int) RETURNS int
PARAMETER STYLE JAVA NO SQL LANGUAGE JAVA
EXTERNAL NAME 'SQLUtils.TestClass.addNos'
接着
SELECT addno(3,4), BILLNO FROM SALEBILL
这给出了一个例外
Error code -1, SQL state 42X51: The class 'SQLUtils.TestClass' does not exist or is inaccessible. This can happen if the class is not public.
错误代码 99999,SQL 状态 XJ001:Java 异常:'SQLUtils.TestClass: java.lang.ClassNotFoundException'。
第 6 行,第 1 列
我已经制作了一个包含上述类的项目的 jar 文件。我可能错了,但我可以从中得出的结论是这个 jar 文件需要位于某个类路径中。但是在哪个类路径以及如何将其添加到类路径中,我无法理解。
我尝试将 jar 文件复制到 jdk\lib 文件夹、jre\lib 文件夹、jdk\jre\lib 文件夹,但无济于事。
有人可以指出我正确的方向吗?
我在网络模式下使用 NetBeans IDE 7.1.2、jdk 1.7.0_09、Derby 版本 10.8.1.2。应用程序和数据位于服务器上。我从客户端计算机上安装的 Netbeans 访问它们。