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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java整數緩衝區Java
- 字串或數字反轉字串
- Oracle 11.2.0.3.0中執行awrrpt.sql生成awr報告報ora-06502錯誤OracleSQL
- stdio流緩衝區
- Java NIO:緩衝區Java
- Java NIO 之緩衝區Java
- Unity深度緩衝區指令Unity
- Linux 命令 管道 緩衝區Linux
- JS錯誤記錄 – 右側懸浮框 – 緩衝運動JS
- 掌握CFML:在輸出緩衝區中高效搜尋字串的技巧字串
- 緩衝區溢位實驗
- 緩衝區溢位攻擊
- JavaScript WebGL 幀緩衝區物件JavaScriptWeb物件
- PHP的輸出緩衝區PHP
- Node.js Buffer(緩衝區)Node.js
- Java NIO 之 Buffer(緩衝區)Java
- SQL Server 中將字串按數字排序SQLServer字串排序
- SQL 如何拆分字串中的數值後排序SQL字串排序
- c++判斷字串全是字母或數字C++字串
- Git合併時遇到衝突或錯誤後取消合併Git
- 《Lua-in-ConTeXt》10:緩衝區魔法Context
- Java-NIO之Buffer(緩衝區)Java
- 緩衝區溢位小程式分析
- Redis效能篇(五)Redis緩衝區Redis
- PHP 輸出緩衝區應用PHP
- 8、Node.js Buffer(緩衝區)Node.js
- 記錄一次數字和字串比較時候犯的錯誤字串
- C語言清空輸入緩衝區C語言
- MySQL中讀頁緩衝區buffer poolMySql
- 初識Netty原理 (二)——ByteBuf緩衝區Netty
- Oracle PL/SQLOracleSQL
- PL/SQL 宣告SQL
- 【熱點】數字化轉型最致命的4個誤區和3個錯誤
- 緩衝管理
- 使用PL/SQL找到兩個表中的相似值FKSQL
- Wgpu圖文詳解(03)緩衝區BufferGPU
- Redis緩衝區溢位及解決方案Redis
- oscp-緩衝區溢位(持續更新)
- Sql Server對等複製中將截斷字串或二進位制資料。 (源: MSSQLServer,錯誤號: 8152)SQLServer字串