ストアドプロシージャを呼び出すためにOCIを使用してC++プログラムを作成しています。PL / SQLストアド・プロシージャのテストで、アウトバウンド変数を初期化しないと、barがNULLの場合、 「フェッチされた列の値がNULLです」というエラーが発生する可能性があります。foo != 0
したがって、最初の行では、最初にバーを初期化します。これはアウトバウンド変数を処理する正しい方法ですか?
FUNCTION function1(
foo IN INTEGER,
bar OUT VARCHAR2
) RETURN INTEGER
IS
ret INTEGER;
BEGIN
bar := ' '; -- do I need to initialize this variable?
IF foo = 0 THEN
ret := 0;
bar := 'a';
ELSE
ret := 1;
END IF;
RETURN ret;
END function1;