我在使用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访问它们。