3

Derby データベースの Create Function コマンドの使用に問題があります。

まず、試してみました

  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