SQLJ ホスト式

ホスト式とは、SQLJ アプリケーション・プログラムの SQLJ 節によって参照される Java 変数または式です。

構文

Read syntax diagramSkip visual syntax diagram:INOUTINOUTsimple-variable( complex-expression)INDICATOR:simple-variable( complex-expression)

説明

:
後に続く変数または式がホスト式であることを示します。 コロンは変数または式の直前に付ける必要があります。
IN|OUT|INOUT
ストアード・プロシージャー呼び出しでパラメーターとして使用されるホスト式の場合、パラメーターがストアード・プロシージャーにデータを提供するか (IN)、ストアード・プロシージャーからデータを取り出すか (OUT)、またはその両方を行うか (INOUT) を識別します。 デフォルトは IN です。
simple-variable
Javaの修飾されていない識別子を指定します。
complex-expression
単一の値を返すJava式を指定します。
INDICATOR :simple-variable or INDICATOR :(complex-expression)
対応するJavaホスト変数のオプションのインジケータ変数を指定します。 インジケータ変数のデータ型は、Javaのショート型でなければなりません。 :simple-variable または :(complex-expression) の値として唯一有効なものは、次のとおりです。

カスタマイズされたアプリケーションの場合、入力については、以下の値のみ有効です。

標識の値 相当する定数 値の意味
-1 sqlj.runtime.ExecutionContext.DBNull ヌル
-2, -3, -4, -6   ヌル
-5 sqlj.runtime.ExecutionContext.DBDefault デフォルト
-7 sqlj.runtime.ExecutionContext.DBUnassigned 未割り当て
short-value >=0 sqlj.runtime.ExecutionContext.DBNonNull null 以外

カスタマイズされていないアプリケーションの場合、入力については、以下の値のみ有効です。

標識の値 相当する定数 値の意味
-1 sqlj.runtime.ExecutionContext.DBNull ヌル
-7 <= short-value < -1   ヌル
0 sqlj.runtime.ExecutionContext.DBNonNull null 以外
short-value >0   null 以外

カスタマイズされているアプリケーションとカスタマイズされていないアプリケーションで、出力については、以下の値のうちのいずれかが SQLJ によって設定されます。

標識の値 相当する定数 値の意味
-1 sqlj.runtime.ExecutionContext.DBNull 取り出される値は SQL NULL
0   取り出される値は SQL NULL ではない

使用上の注意

  • 複合式は括弧で囲む必要があります。
  • ANSI/ISO 規則は、ホスト式を静的 SQL ステートメントに配置できる場所で適用されます。
  • 標識変数が必要になるのは、以下の場合です。
    • 入力の場合、テーブルのカラムにNULL値を割り当てる際にJavaのプリミティブ型を使用する。
    • 出力の場合、ホスト変数にJavaのプリミティブ型が使用され、ソース列がNULL値を返す可能性がある場合。

      SQL NULL 値が返される場合、標識変数が定義されていないと、SQLNullException がスローされます。

    ホスト変数のデータタイプが以下の場合は、Javaのnull値をSQLのNULLとして入力または出力する際に、指示変数は必要ありません
    • Javaクラスのデータ型
    • ドライバーでサポートされるカスタム・データベース・タイプ
  • , … 変数 n
  • 出力において、標識変数は以下のタイプのステートメントの中で有効です。
    • OUT または INOUT パラメーターを指定した CALL ステートメント
    • FETCH positioned-iterator INTO variable-1, … variable-n
    • SELECT column-1, … column-n INTO variable-1, … variable-n