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づつカウントアップされる。
|