Hitachi

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


1.6.3 SQLパラメタ,SQL変数

〈この項の構成〉

(1) 形式

(2) 機能

(a) SQLパラメタ

SQLパラメタは,手続き定義時や関数定義時に宣言したルーチンのパラメタです。

SQLパラメタは,CALL文や関数呼出しでルーチンが呼び出されたときに,CALL文や関数呼出しを記述したUAP又はルーチンと,呼び出されるルーチンとの間で値の受け渡しをするための変数です。

ルーチン宣言時に指定するパラメタモードによって,SQLパラメタでは次のことができます。

  • パラメタモードがIN又はINOUTの場合

    ルーチン中でSQLパラメタの値を参照できます。値を参照することで,ルーチンを呼び出したUAP又はルーチンから値を取得できます。

  • パラメタモードがOUT又はINOUTの場合

    ルーチン中でSQLパラメタの値を設定できます。値を設定することで,ルーチンを呼び出したUAP又はルーチンに値を返せます。

SQLパラメタの指定方法は,SQLで記述したルーチンに指定するか,又はSQL以外で記述した外部ルーチンに指定するかで,次のように異なります。

  • SQLで記述したルーチン中に指定する場合

    "〔〔認可識別子.〕ルーチン識別子.〕SQLパラメタ名"で指定します。

    ただし,パブリック手続き定義時,又はパブリック関数定義時に認可識別子を指定するときは,PUBLICを指定してください。

  • SQL以外で記述した外部ルーチン中に指定する場合

    SQLパラメタに対応する外部ルーチン本体のパラメタ名で指定します。この場合,外部ルーチンは,指定したパラメタをSQLパラメタとしてではなく,外部ルーチンの実装に用いた言語のパラメタとして参照,更新します。

なお,UAPとルーチンとの間で値の受け渡しをするとき,UAP側のCALL文中又は関数呼出し中には,埋込み変数,標識変数,又は?パラメタを指定します。

(b) SQL変数

SQL変数は,SQLルーチン中のSQL間の値の受け渡しや,表とSQLルーチンとの間の値の受け渡しに使用できます。SQL変数は,SQLルーチン中の複合文で宣言し,宣言した複合文中で参照できます。

SQLパラメタ,及びSQL変数は,埋込み変数と異なり,ナル値が格納できます。このため,標識変数を使用したり,変数名の前に「:」を付けたりする必要はありません。

(3) データ型

SQLパラメタ,及びSQL変数のデータ型は,SQLのデータ型を指定します。SQLのデータ型については,「データ型」を参照してください。