JUST DO IT ~

          我只想當個程序員

          異常 外圍系統調用本系統 參數不正常引起的問題 ORA-06502: PL/SQL: 數字或值錯誤 : 字符串緩沖區太小


          外圍報盤程序 .net 調用

          傳遞的參數 varchar2  100


          存儲過程

          procedure p400106
          (
           o_cursor        out types.ref_cursor,  --返回的查詢結果
           o_status        out INTEGER,           --狀態標志:-1,0
           o_retmsg        out VARCHAR2,          --返回信息
            v_scust_no       in varchar2 ,         --客戶號char  [11]


          當過程返回的錯誤信息變量被 賦值 > 100 的字符后 就出錯了.... 比較隱晦.

          由外圍系統調用產生的錯誤.










          外部系統(別人的程序 ) 調用存儲過程  
          我對輸入參數要求 是 1,2  別人確輸入了4  而且錯誤隱晦


            if var ==1  ...
            if var ==2 
            else rasie  excption 



          if ( var  not  in ( '1' , '2') ){
             var :=2 ;  // 設定默認值
          }
          ?
          建議
           1. 要么使用異常 對輸入的value 進行排查.報錯輸出

          2  要么是統一過濾 如果不是 1,2  那么我強制設定一個默認值
          必須在是 那個 ....

           但是交易中買賣方向是 B S 以外的那么怎么半呢 ?? 這類問題通常調試階段很容易查處來的.... 建議用報錯的方式 提示..........
          雖然默認值的方式 穩定性更好.........
          但是交易方式的問題不容 絲毫差錯 ............


          使用別人的數據庫
          小數點 進度 進入到我們的數據庫
          別人數據庫的 沒處理好


          成交回報寫入數據庫錯誤,數據庫錯誤信息:code:msg:error:ORA-06502: PL/SQL: 數字或值錯誤 :  字符串緩沖區太小
          ORA-06512: 在 "ITMP.IDMP_STOCK", line 978
          ORA-06502: PL/SQL: 數字或值錯誤 :  字符串緩沖區太小
          ORA-06512: 在 "ITMP.IDMP_MARKET", line 1479
          ORA-06510: PL/SQL: 用戶定義的異常錯誤未得到處理
          ORA-06510: PL/SQL: 用戶定義的異常錯誤未得到處理
          ORA-06512: 在 line 1

          System.Data.OracleClient
             在 System.Data.OracleClient.OracleConnection.CheckError(OciErrorHandle errorHandle, Int32 rc)
             在 System.Data.OracleClient.OracleCommand.Execute(OciStatementHandle statementHandle, CommandBehavior behavior, Boolean needRowid, OciRowidDescriptor& rowidDescriptor, ArrayList& resultParameterOrdinals)
             在 System.Data.OracleClient.OracleCommand.ExecuteNonQueryInternal(Boolean needRowid, OciRowidDescriptor& rowidDescriptor)
             在 System.Data.OracleClient.OracleCommand.ExecuteNonQuery()
             在 fundoffer.DatabaseProcess.sp5106(String custno, String stkcode, String entsys, String cjno, Int32 entnum, Single cjamt, Single cjprice, String cjdate, String cjtime, String bstp, String kptp, String exchgcode, String seatno, String exchgcustno, String& retcode, String& retmsg) 位置 E:\ 接口調試\seat_new_fundoffer\fundoffer\DatabaseProcess.cs:行號 787
             在 fundoffer.HolderCjhb.QBWriterDB() 位置 E:\ 接口調試\seat_new_fundoffer\fundoffer\HolderCjhb.cs:行號 426


           

          posted on 2008-09-10 10:58 小高 閱讀(5771) 評論(0)  編輯  收藏 所屬分類: Exception 異常處理

          導航

          <2008年9月>
          31123456
          78910111213
          14151617181920
          21222324252627
          2829301234
          567891011

          統計

          常用鏈接

          留言簿(3)

          隨筆分類(352)

          收藏夾(19)

          關注的blog

          手冊

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 昌乐县| 满洲里市| 政和县| 焦作市| 岳西县| 河源市| 东海县| 桃江县| 夏河县| 当涂县| 资源县| 八宿县| 阳原县| 油尖旺区| 禹州市| 大埔县| 南漳县| 绩溪县| 松阳县| 文水县| 古浪县| 绵竹市| 泉州市| 深州市| 若尔盖县| 天全县| 新巴尔虎左旗| 莱芜市| 贺兰县| 宜城市| 兴和县| 大英县| 海阳市| 马关县| 宣武区| 伊金霍洛旗| 南丰县| 珠海市| 汕尾市| 桂东县| 皋兰县|