ORA-09820: Conversion of class string to numeric representation failed.

文档解释

ORA-09820: Conversion of class string to numeric representation failed.

Cause: ORACLE was unable to convert a class string to a number because all of the characters in the string were not numeric.

Action: Change the string to be either all numbers or all non-numeric characters and repeat the conversion.

错误说明

ORA-09820:转换类字符串到数值表示失败,是ORACLE中一种常见的一般性错误,引发原因是你嘗試將一個字符串轉換為數值表示,而該字符串並不能成功轉換為數值。

常见案例

無論是哪種數據類型的轉換到數值類型,都有可能出現這種錯誤。例如,可能字符串中有數值以外的非數值字符,或者可能有字符格式錯誤的數值字符,這樣在轉換時會出錯。很多情況下,只要格式正確,就不會出現這種錯誤。

解决方法

首先,檢查有用以下方法檢查,以確保字符串中沒有特殊字符(如*,/,#等):

1. 使用Oracle的LPAD函數處理字符串,以避免在對應到表上數值字段的操作時,大小寫的錯誤表達引起的內容不能正確匹配的情況;

2. 使用正確的格式將字符串轉換為正確的數值表示,例如將字符串 12345轉換為12345.00

3. 使用Oracle中的TO_NUMBER函數,在轉換為數值前對字符串進行檢查,確保其格式正確。

此外,也可以使用ORACLE的CASE語句來更新數據庫中的字符類型字段,並將數據表中欄位內容轉換為對應的數值類型。

通過以上幾個措施,在一定程度上能夠幫助開發人員避免出現ORA-09820錯誤,保證正確的資料轉換。

你可能感兴趣的