ORA-06502: PL/SQL: 數字或值錯誤 : 字串緩衝區太小
在除錯久懸戶轉營業外收入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 遊標後先判斷遊標是否提取到資料集,
如遊標存在資料集,則繼續執行中間業務處理程式碼,否則退出;
為是儲存過程的某些變數宣告範圍較小,比如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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 生成awr報告時報ORA-06502: PL/SQL: 數字或值錯誤 : 字串緩衝區太小SQL字串
- Java整數緩衝區Java
- ORA-22835: 緩衝區對於 CLOB 到 CHAR 轉換或 BLOB 到 RAW 轉換而言太小
- 【原創】mysql 錯誤緩衝堆疊薦MySql
- 緩衝區分析
- 使用edit編輯緩衝區中的sqlSQL
- 字串或數字反轉字串
- ORA-06502: PL/SQL: numeric or value error: character to number conversion error錯誤的解決方法SQLError
- C 標準庫IO緩衝區和核心緩衝區的區別
- Java NIO:緩衝區Java
- getchar緩衝區
- 調節Oracle資料緩衝區引數,緩衝整個資料庫(轉)Oracle資料庫
- 【PL/SQL】向表中插入連續數字之PL/SQL方法SQL
- Java NIO 之緩衝區Java
- Unity深度緩衝區指令Unity
- nginx 緩衝區構造Nginx
- stdio流緩衝區
- pl/sql中錯誤的異常處理SQL
- pl/sql程式碼中不得犯的錯誤!SQL
- Java:字串緩衝區StringBuffer和StringBuilder的使用Java字串UI
- JS錯誤記錄 – 右側懸浮框 – 緩衝運動JS
- 【原創】MySQL 在讀取異常錯誤緩衝區方面的提升(MySQL5.6)薦MySql
- ORA-06502 PL/SQL: numeric or value error stringSQLError
- 掌握CFML:在輸出緩衝區中高效搜尋字串的技巧字串
- Node.js Buffer(緩衝區)Node.js
- PHP的輸出緩衝區PHP
- JavaScript WebGL 幀緩衝區物件JavaScriptWeb物件
- Linux 命令 管道 緩衝區Linux
- log buffer(日誌緩衝區)
- Java NIO 之 Buffer(緩衝區)Java
- Java NIO2:緩衝區Java
- 動態更新——緩衝區物件物件
- 緩衝區溢位實驗
- PL/SQL:ORA-04063錯誤解決方法SQL
- oracle sql去掉漢字保留數字或字母OracleSQL
- CMD.EXE中dir超長字串緩衝區溢位原理學習字串
- 避免PL/SQL Case Not Found錯誤三方法SQL
- SQL字串的數字部分遞增SQL字串