INOUT定数引数のデータ型は、定義される内容ではなく、渡される値のデータ型によって決定されます。渡される値のデータ型がCREATE PROCEDURE文またはREPLACE PROCEDURE文で定義されるデータ型より小さく、外部ストアド プロシージャが、渡される値のデータ型の最大値より大きい値を戻す場合は、オーバーフロー エラーが戻されます。
例えば、以下のような、INTEGER INOUTパラメータを定義する外部ストアド プロシージャがあるとします。
CREATE PROCEDURE inout_example( INOUT p1 INTEGER ) LANGUAGE C NO SQL PARAMETER STYLE SQL EXTERNAL;
SMALLINTに適合する定数入力値を持つ外部ストアド プロシージャを呼び出すと、出力値がSMALLINTの最大値である32767より大きい場合に、オーバーフロー エラーが戻されます。
CALL inout_example(1000);