注意:先用單步調試,找出出錯程式語句
<1>未註冊XXX動態連結程式庫
(未註冊動態連結程式庫檔案或者該方法所在的類庫不存在)
<2>未將對象設定引用到對象執行個體
(沒有給對象正確賦值,可檢查參數值,引用了未初始化的變數)
<3> “myDelegate”是不明確的引用
(同等層級的名字空間節點上出現同名委託)
<4>不支援並行的事務
(新事務未提交或者事務執行不完整,注意,如果提交事務之前存在return語句,那麼必須將事務提交放在return之前執行)
<5>ORA: 找不到預期的FROM關鍵字
(SQL語句中關鍵字衝突)
(From前面字元未保留空格)
<6>字串格式不匹配
(Oracle中整數型別參數應用程式中可用字串代替,但Varchar型別參數在應用程式中必須對應為字串類型)
(參數轉換不正確,參數類型與資料表種欄位類型不符)
<7>缺少運算式/未找到預期的關鍵字FROM
(SQL語句錯誤)
(可用快速監視的方法查看變數的執行情況)
(Oracle中不能用AS關鍵字給表別名,可去掉AS)
(轉換錯誤,例如char應為to_char,詳情請參閱相關Oracle技術資料)
<7>SQL命令未正確結束
(缺少括弧或其他標示符)
<8>CURRENT TIMESTAMP
(1)改為:CURRENT_TIMESTAMP,即可
(2)表別名只需: select * from tableName A 即可,不能寫成: select * from tablename AS A
(3)to_char(char), to_number(int), to_date(date)
<9>dual 代替 IDM DB2中的SYSIBM.SYSDUMMY1, 用to_date代替timestamp
為組合框指定資料來源的時候,要把資料來源放在前面,例如 cmb.DataSource = datasource; cmb.DisplayNumber = ...
<10>調用預存程序時出錯,參數個數或者類型錯誤
(檢查參數名稱、值、類型、長度、傳出方向是否和預存程序參數一致,須仔細檢查,不然可能一處出錯,全盤皆錯。鄙人曾經碰到過一次,36個參數要傳入預存程序,只因為一個參數名出錯,結果系統老提示以上異常 。
<11>執行預存程序中,插入的列過大!
(參數長度太小,或者被引用的字串沒有去掉空格)
<12>給CURRENT_TIMESTAMP 加上N個小時
select CURRENT_TIMESTAMP + N/24 from dual
<12>給組合框指定資料來源,所有屬性都正常,但是就是無法正常顯示!
詳見:一個罕見C#異常的解決過程
<13>缺乏應有的引用和程式集,奇怪,我明明添加了呀?
(1)系統內部錯誤,關掉開發環境,重啟動即可!
(2)引用名發生大小寫錯誤!
<14>"Control"是不明確的引用
(1)在系統感知的名字空間下,出現名字相同的類。比如:System.Windows.Forms.TextBox, MyTest.TextBox
(2)詳細指定名字空間全稱即可,不能以TextBox引用,因為系統不知道你要引用的是哪個TextBox
<15>日期格式圖片在轉換整個輸入字串之前結束
(1)這通常因為程式中的諸如此類的語句:cast(djrq as char(10))||'' ''||cast(djsj as char(10))
(2)應改為: to_date(to_char(djrq,'yyyy-mm-dd')||' '||to_char(djsj,'hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss')
<16>無法處理的服務名
(1)這通常是因為連接字串錯誤,或者應用程式所在的檔案夾名稱錯誤,導致無法登入Oracle伺服器。
例如如果檔案夾命名為aaa(dd)等諸如此類含有非字母和數字組合的名稱就會因發此異常,特別注意。
<17>OCI:20053 溢出錯誤
(1)這通常是因為數實值型別的小數位太長,導致Adapter的Fill()方法拋出異常。解決辦法是使用Round函數,限制其小數位長度,例如Round(1/6, 3),把小數位長度限制在3位。
<18>數值超出了範圍
(1)這通常出現在資料轉換中,轉換設定的長度小於數值本身的長度,導致Adapter的Fill()方法拋出異常。解決辦法是,例如轉換字串,可寫為Cast( Variable as Varchar( 100 ) ),把設定的長度儘可能的超過原變數長度。
<19>Oracle服務不可用,提示: Oracle Unavailable. shared memory realm does not exist
(1)開啟SQL Plus Worksheet,以資料庫管理員身份登入(connect sys/x#$yh&#@o$radb as sysdba),輸入startup,執行,一切OK!(2007-3-6)
<20>不能執行更新語句,提示: 無任何提示,程式彷彿死了一般(未拋出異常)
(1)這通常是因為你在P/LSQL上對該表執行了更新但是未提交,導致你在程式之外鎖定了該表,因此在程式內對該表執行更新時將無限時等待。解決辦法是關閉P/LSQL,解除鎖定。(2007-3-12)
<21>水晶報表提示:無效報表源
(1)這通常是因為你在的引用出了差錯,即臭名昭著的“Dll Hell”問題。將水晶報表不同版本的DLL混在一起引用,造成水晶報表無法識別的錯誤。 解決辦法:統一引用檔案的版本。 (2007-4-19)