隐式算术运算符预言机过程参数



我在这个oracle 11g存储过程中发现了一个错误:

PROCEDURE getresult (C OUT RC, code IN VARCHAR)

"code" 输入参数具有以下格式(年份/ID): 2017/000000023357

好吧,oracle 进行了隐式除法,收到的结果是除法运算的结果:,0863552682279402320503489317977479984587

有什么建议可以避免隐式操作而不是更改过程调用吗?

您的代码参数VARCHAR,并且您直接传递它而不带引号。您应该按如下方式调用它。

EXEC getresult ( v_c , '2017/000000023357');

¿避免隐式操作而不是更改的任何建议 过程调用?

为什么要这样做?不能期望过程参数包含算术表达式,以便在不使用引号的情况下解释为纯文本。

最新更新