Hitachi

ノンストップデータベース HiRDB Version 10 SQLリファレンス


2.23.1 GET_JAVA_STORED_ROUTINE_SOURCE指定の形式と規則

〈この項の構成〉

(1) 機能

JARファイルから,Javaクラスのソースファイルを抽出します。

なお,JavaルーチンはHP-UX,AIX,Linux,及びWindowsのHiRDBで使用できます。HP-UX,及びAIXの場合は,POSIXライブラリ版のHiRDBをセットアップ(pdsetupコマンドを実行)していないとき,又はPOSIXライブラリ版のHiRDBから非POSIXライブラリ版のHiRDBに再セットアップしたときは,Javaルーチンを使用できません。pdsetupコマンドについては,マニュアル「HiRDB コマンドリファレンス」を参照してください。

(2) 形式

 GET_JAVA_STORED_ROUTINE_SOURCE(クラス名,JARファイル名〔,ソースファイル最大長〕)

(3) オペランド

クラス名は,255バイト以下の文字列で指定してください。形式を次に示します。

'〔パッケージ名.〕クラス識別子'

クラス名には,255バイト以下のVARCHAR型の値式を指定できます。

クラス名に,?パラメタ又は埋込み変数だけを指定した場合,その?パラメタ又は埋込み変数は単純構造にしてください。

文字集合は既定文字集合にしてください。

JARファイル名は255バイト以下の文字列で指定してください。

また,JARファイル名には,255バイト以下のVARCHAR型の値式を指定できます。

JARファイル名は,パス名で指定しないでください。

JARファイル名に?パラメタ又は埋込み変数だけを指定した場合,その?パラメタ又は埋込み変数は単純構造にしてください。

文字集合は既定文字集合にしてください。

抽出するソースファイルの最大長(バイト数)を整数定数で指定します。

指定できる範囲は,1〜2,147,483,647です。ナル値は指定できません。また,省略した場合は2,147,483,647が仮定されます。

(4) GET_JAVA_STORED_ROUTINE_SOURCE指定の結果についての規則

  1. GET_JAVA_STORED_ROUTINE_SOURCE指定の結果は,非ナル値制約なし(ナル値を許します)のBLOB型,定義長はソースファイル最大長で指定した長さとなります。

  2. GET_JAVA_STORED_ROUTINE_SOURCE指定の結果は,JARファイルから取り出したファイルの内容(ソースファイル最大長で指定した値を超える内容は切り捨て)となります。

  3. 次のどれかの条件を満たす場合,GET_JAVA_STORED_ROUTINE_SOURCE指定の結果はナル値になります。

    • 引数のうち,どれかがナル値の場合

    • 指定したJARファイルがインストールされていない場合

    • JARファイル中に指定したクラスに対応するソースファイルがない場合

(5) 共通規則

  1. GET_JAVA_STORED_ROUTINE_SOURCE指定は,次の箇所で指定できます。

    • 最も外側の問合せ指定の選択式に単独で指定

    • 最も外側の問合せ指定の選択式にスカラ関数LENGTHの引数に指定

  2. ORDER BY句を指定した場合,ソートのキーになる項目にGET_JAVA_STORED_ROUTINE_SOURCE指定は指定できません。

  3. WITH句中の導出問合せ式では,選択式にGET_JAVA_STORED_ROUTINE_SOURCE指定は指定できません。

  4. 集合演算をする場合,対象となる導出表の列にGET_JAVA_STORED_ROUTINE_SOURCE指定は指定できません。

  5. 副問合せ(FROM句の導出表も含む)中の選択式にGET_JAVA_STORED_ROUTINE_SOURCE指定は指定できません。

  6. ビュー定義の導出問合せ式の選択式にGET_JAVA_STORED_ROUTINE_SOURCE指定は指定できません。

  7. INSERT文の問合せ指定の選択式にGET_JAVA_STORED_ROUTINE_SOURCE指定は指定できません。

  8. GET_JAVA_STORED_ROUTINE_SOURCE指定は,クラス名からパッケージ名を除いたクラス識別子だけを参照します。したがって,JARファイル中に同じクラス識別子のソースファイルが複数ある場合,GET_JAVA_STORED_ROUTINE_SOURCE指定の結果は複数のソースファイルが連結された形式になります。

  9. GET_JAVA_STORED_ROUTINE_SOURCE指定は,指定したクラス識別子の末尾に'.java'を付けた文字列をJavaクラスのソースファイルとみなします。

  10. GET_JAVA_STORED_ROUTINE_SOURCE指定でソースファイルを取り出すためには,JARファイル中にソースファイルがなければなりません。JARファイルの作成方法については,マニュアル「HiRDB UAP開発ガイド」を参照してください。

(6) 留意事項

  1. GET_JAVA_STORED_ROUTINE_SOURCE指定は,HiRDBに組み込まれたJARファイルを対象にします。

  2. GET_JAVA_STORED_ROUTINE_SOURCE指定を含んだSQL文を実行するためには,Java環境がインストールされていなければなりません。

  3. クラス名,JARファイル名に余分な空白文字を含めないでください。

(7) 使用例

スキーマ(USER1)に登録されているJavaルーチン(JAVAROUTINE)のソースファイルの内容を抽出します。

  SELECT GET_JAVA_STORED_ROUTINE_SOURCE(CLASS_NAME,JAR_NAME)
    FROM MASTER.SQL_ROUTINES
      WHERE ROUTINE_SCHEMA='USER1' AND ROUTINE_NAME='JAVAROUTINE'