ORA-06502: PL/SQL: 數字或值錯誤 : 字串緩衝區太小

wisdomone1發表於2011-12-08
 在除錯久懸戶轉營業外收入proc_batchdormaccttooutincome時,報錯如題,首先認
為是儲存過程的某些變數宣告範圍較小,比如varchar2的具體精度有些小,加大即可.
隨後於網上查詢,也多半是此類解決方法,摘舉網上相關連線,供參考:

http://hi.baidu.com/forhh/blog/item/a6a48326357e34128a82a1f2.html





其它連結不再列舉於此,大同小異

根據以上網友方法一一嘗試,畢無果而終;

後採用排除法處理;大體思路如下:
 1,先把久懸戶轉營業外收入proc_batchdormaccttooutincome的遊標提取
           資料記錄限制為1條
   
     2, 開啟pl/sql developer的test視窗,組合採用單步及逐過程或者單步跳出
            或者執行 到下一個異常
     3, 最終定位是因為遊標的程式碼順序出錯異常如題報錯:
             (注:請注意我用其它塗藍色及標註順序號的相關行程式碼,其實就把遊標相關
      行程式碼順序進行了調換即可)
   原始碼:
      open   cur_getdormmedium;
      loop
       fetch cur_getdormmedium into lvnmediumid, --1
                              lvnvouhno,
                              lvnvouhtype,
                              lvnfundtypdtlcd,
                              --lvntaxrptforpersnbr,
                              lvnbranchorgnbr,
                              lvnacctnbr,
                              lvnmjaccttypcd,
                              lvncurrmiaccttypcd;
       --略去中間業務處理程式碼,共計是5個子級儲存過程 ---2
       exit when cur_getdormmedium%notfound;    ---3
                         end loop;           
                         close cur_getdormmedium;
   修改後程式碼:
      open   cur_getdormmedium;
      loop
       fetch cur_getdormmedium into lvnmediumid, --1
                              lvnvouhno,
                              lvnvouhtype,
                              lvnfundtypdtlcd,
                              --lvntaxrptforpersnbr,
                              lvnbranchorgnbr,
                              lvnacctnbr,
                              lvnmjaccttypcd,
                              lvncurrmiaccttypcd;
       exit when cur_getdormmedium%notfound;   --3
                         --略去中間業務處理程式碼,共計是5個子級儲存過程 --2
                         end loop;           
                         close cur_getdormmedium;

    小結: 
    a,遊標程式碼塊中,open 遊標後先判斷遊標是否提取到資料集,
     如遊標存在資料集,則繼續執行中間業務處理程式碼,否則退出;
     

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9240380/viewspace-712977/,如需轉載,請註明出處,否則將追究法律責任。

相關文章