2017-10-18 77 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'); 

¿任何建議,以避免隱性操作,而不是改變 過程調用?

爲什麼要這樣做?您不能期望過程參數包含算術表達式,而不使用引號將其解釋爲純文本。