SQLJ ホスト式
ホスト式とは、SQLJ アプリケーション・プログラムの SQLJ 節によって参照される Java 変数または式です。
構文
説明
- :
- 後に続く変数または式がホスト式であることを示します。 コロンは変数または式の直前に付ける必要があります。
- 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
