oracle - 奇怪的错误。从 SQL Server 调用 Oracle 过程可以正常工作,但不会更新输出参数
问题描述
几个月前我发布了这个问题,但当时没有找到解决方案。解决这个问题对我们来说非常重要!!!!
我从 SQLServer 调用以下 oracle 过程。我已经验证了从 sql server 调用时确实调用并触发了该过程。oracle 过程有一个输出参数。问题是当我从 sqlserver 进行过程调用时,我在输出参数中没有得到值。相反,我得到一个空值(在@outpp 变量中)
create or replace procedure ak_del_proc1(a1 number,
a2 out number) is
begin
a2 := 111;
end;
Declare @outpp varchar(50)
EXECUTE ('BEGIN ak_del_proc1(?, ?); END;', 9999, @outpp OUTPUT)
AT MegaOracle;
Select @outpp
提前致谢。安德烈亚斯
解决方案
好几个小时后,问题解决了!!
这是来自 SQLServer 的正确调用:
declare @outpp int=2222;
EXECUTE ('BEGIN ak_del_proc1(?,?); END;', 999, @outpp OUTPUT) AT MegaOracle;
Select @outpp
问题是参数没有初始化。当我们为@outpp 赋值时,一切都按预期工作。
declare @outpp int=2222;
推荐阅读
- sapui5 - 在 init() 中出现 attachRequestCompleted 错误
- tensorflow - 如何在 Tensorflow 的全局命名空间中存储和检索张量?
- c - 从源文件和标题文件在 C 中创建 dll
- html - Bootstrap 3 布局,包括推/拉组合、一个 div“rowspan”和重新排序的移动 div
- meteor - Meteor 实时更新无法按预期工作
- google-analytics - 谷歌分析 gtag 应该如何在 SPA 中工作?
- javascript - 最佳实践:替换每个元素或仅检查和替换已更改的元素是否更有效?
- python - ipython控制台中的彩色熊猫数据框输出
- algorithm - 有人可以向我解释为什么完美平方是 O(sqrt(n)) 的运行时间吗?
- reactjs - 混合使用 React 和 Vue 是个好主意吗?