2017-10-18 41 views
-1

我发现在这的Oracle 11g存储过程的错误:隐算术运算符Oracle过程参数

PROCEDURE getresult (C OUT RC, code IN VARCHAR) 

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

好, oracle进行隐式除法,得到的结果是除法操作的结果:,0863552682279402320503489317977479984587

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

回答

1

您的代码参数是VARCHAR并且您直接传递它而不加引号。你应该这样称呼它。

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

¿任何建议,以避免隐性操作,而不是改变 过程调用?

为什么要这样做?您不能期望过程参数包含算术表达式,而不使用引号将其解释为纯文本。