3

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

4

0 回答 0