隐式算术运算符oracle过程参数

时间:2017-10-18 09:27:26

标签: oracle oracle11g

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

PROCEDURE getresult (C OUT RC, code IN VARCHAR)

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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

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

为什么要这样做?您不能指望procedure参数包含要在不使用引号的情况下解释为纯文本的算术表达式。