我在这个oracle 11g存储过程中发现了一个错误:
PROCEDURE getresult (C OUT RC, code IN VARCHAR)
“code”输入参数具有以下格式(年/ ID):2017/000000023357
好吧,oracle进行隐式划分,收到的结果是除法运算:,0863552682279402320503489317977479984587
是否有任何建议要避免隐式操作而不是更改过程调用?
答案 0 :(得分:1)
您的代码参数为VARCHAR
,并且您直接传递它而不带引号。您应该按如下方式调用它。
EXEC getresult ( v_c , '2017/000000023357');
¿任何避免隐式操作而不是改变的建议 程序调用?
为什么要这样做?您不能指望procedure参数包含要在不使用引号的情况下解释为纯文本的算术表达式。