ORA-01455報錯的問題探究
來源:易賢網(wǎng) 閱讀:1064 次 日期:2014-10-17 10:48:30
溫馨提示:易賢網(wǎng)小編為您整理了“ORA-01455報錯的問題探究”,方便廣大網(wǎng)友查閱!

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

網(wǎng)上包括MOS上對1455報錯介紹更多的是在做exp導出時可能出現(xiàn)這個問題。

1087122.1介紹:

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

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

產(chǎn)生的原因可能是:

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

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

解決方案:

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

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

總結(jié):

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

更多信息請查看IT技術(shù)專欄

更多信息請查看數(shù)據(jù)庫
易賢網(wǎng)手機網(wǎng)站地址:ORA-01455報錯的問題探究
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇剩?/div>

2025國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 加入群交流 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)