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