我正在编写一个使用 OCI 调用存储过程的 C++ 程序。在我的 PL/SQL 存储过程测试中,如果不初始化出站变量,我可能会收到“获取的列值为 NULL”错误,因为在 的情况下foo != 0
,bar 为 NULL。所以在第一行,我先初始化 bar。这是处理出站变量的正确方法吗?
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;