TECHNOLOGY

Tips !(使用上のテクニック)

対象バージョン : Adaptive Server Anywhere 6.0、7.0
対象OS : Windows95/98/ME ,WindowsNT/2000

ST0105010

JAVAのストアド・プロシージャとストアド・ファンクションの利用

Tips !

【JAVAのストアド・プロシージャ】

JAVAのクラスを作成して,CENTRALにて登録してし、ISQLにて内容を確認する。
実際の実行では下記コマンドを発行する。

CALL プロシージャ名.main(パラメータ)

(登録と確認の例) JDK1.3の環境を使用しています

Javaソースの作成
以下の内容でSample.java を作成する。

———————————————————-
import java.util.Vector;
import java.lang.*;
public class Sample{

//Fields
Vector vector = new Vector();

static public String main(String args[]){
java.lang.String str=”サンプル”;

System.out.print(str);
return str;
}
}
———————————————————-
Javaソースのコンパイル
コマンド・プロンプトにて以下のコマンドを実行し、Javaソースをコンパイルします。
これによりSample.classファイルが作成されます。

javac Sample.java

Databaseへのclassの登録
Sybase Centralでクラスを登録するDatabaseへ接続し、「Javaオブジェクト」-「JavaクラスまたはJARの追加」で作成したJavaクラス Sample.classを追加します。

ISQLにての内容確認
ISQLにて上記3)でクラスを追加したDatabaseに接続し、以下のSQLを実行する。

SELECT Sample.main()

結果として サンプル という文字が表示される。

【Javaのストアド・ファンクション】

Javaのファンクションクラスを作成して,CENTRALにて登録してし、ISQLにて内容を確認する。

Javaファンクションクラスの作成
以下の内容でSample.java を作成する。

———————————————————-
import java.lang.*;
public class Counter{

//Fields
Vector vector = new Vector();

static public String main(String args[]){
java.lang.String str=”サンプル”;

System.out.print(str);
return str;
}
}
———————————————————-
Javaソースのコンパイル
コマンド・プロンプトにて以下のコマンドを実行し、Javaソースをコンパイルします。
これによりCounter.classファイルが作成されます。

javac Counter.java

Databaseへファンクションとして登録する。
ISQLから以下のSQLを実行する。

CREATE FUNCTION getCount() RETURNS INTEGER
EXTERNAL NAME ‘Counter.getCount() return int’

ISQLにての内容確認
ISQLにて上記3)でファンクションを追加したDatabaseに接続し、以下のSQLを実行する。

SELECT Counter.getCount();
結果として計算結果1が表示される。実行ごとに1づつカウントアップされる。