国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > 建站經驗 > 正文

ORA -01455報錯的問題探究

2019-11-02 15:31:02
字體:
來源:轉載
供稿:網友

   昨天同事說有個應用執行某個特殊操作時會報:ORA-01455: converting column overflows integer datatype

  網上包括MOS上對1455報錯介紹更多的是在做exp導出時可能出現這個問題。

  1087122.1介紹:

  “當創建使用初始值超過10位的序列時,可能會出現如下問題:

  ORA-01455: converting column overflows Integer datatype

  ORA-06502 PL/SQL: Numeric or value error: number precision too large

  APP-01564: Oracle error 1455 in fdsgsv

  ORA-01455: converting column overflows integer datatype.

  arzira: Error from fdsnxt:2

  APP-AR-11526: ORA-01403: no data found

  No errors but the document number generated is 0

  產生的原因可能是:

  1、通常在C代碼中使用定長來創建序列號,最大值允許10位。有時可能會替換一些代碼,來調用PLSQL處理超過10位的序列號,可并沒有全部替換。

  2、展示編號的工作臺僅允許15位。

  解決方案:

  一旦已經使用了序列號,那么就不能修改初始值了。唯一的方法就是創建一個新的序列號,取一個耕地的初始值,然后重新賦予到正使用舊序列號的范疇。如果使用的是無間隔的序列,重新初始化序列號可能會帶來更復雜的事情。”

  針對這個報錯,仔細詢問了下,是執行SELECT語句,帶一個特殊的過濾條件時會報這個錯誤,其它的過濾條件則不會報錯,說明很可能是這個特殊過濾條件對應的記錄中有些小問題,經過同事的排查,確定是其中一條記錄的某個字段,Oracle中定義的是NUMBER(10)類型,實際值是8開頭的10位數,但應用程序中使用的getInt()獲取,Integer的取值是-2^15-2^15-1,顯然該值超過了Integer允許的最大值,

12個字網名[www.la240.com/html2017/1/2/]
因此在執行SELECT時會報錯,將getInt()改為getDouble()即可。

  總結:

  根據報錯的提示內容:converting column overflows integer datatype,可以檢查是否有表定義的字段類型和程序中定義的變量類型不匹配,導致精度長度無法對應,造成轉換過程中超過INTEGER類型的長度,也就是說字段類型和變量類型一定要對應。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 崇仁县| 通许县| 六盘水市| 八宿县| 崇左市| 竹山县| 安义县| 阜阳市| 穆棱市| 石首市| 昭通市| 隆子县| 鄂尔多斯市| 塘沽区| 新乡市| 怀宁县| 建湖县| 满城县| 温泉县| 巴中市| 依安县| 岫岩| 德安县| 德昌县| 江孜县| 磴口县| 元谋县| 长阳| 尼勒克县| 肇庆市| 平果县| 延边| 大渡口区| 平罗县| 卓尼县| 保亭| 泰州市| 清丰县| 芒康县| 甘洛县| 大新县|