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 小高 閱讀(5770) 評論(0)  編輯  收藏 所屬分類: Exception 異常處理

          導航

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

          統計

          常用鏈接

          留言簿(3)

          隨筆分類(352)

          收藏夾(19)

          關注的blog

          手冊

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 洛浦县| 宽城| 马关县| 阿拉善右旗| 花莲县| 杂多县| 安溪县| 纳雍县| 方正县| 开阳县| 竹北市| 万荣县| 屏南县| 大新县| 凯里市| 大埔区| 忻州市| 安达市| 桐城市| 沭阳县| 西丰县| 洪洞县| 平谷区| 台东县| 海丰县| 宁国市| 祁连县| 西华县| 呼和浩特市| 西乌珠穆沁旗| 大连市| 天全县| 华安县| 余庆县| 宣武区| 五河县| 民权县| 德江县| 永善县| 苗栗市| 西和县|