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