標準的 sqlexception 提供了乙個標準化的資訊段 (sqlstate) 和乙個**商特有的資訊段 (errorcode)。正如大多數的資料庫和它們的 jdbc 驅動程式實現一樣,oracle 資料庫和 jdbc 驅動程式通過**商特有的錯誤碼所提供的關於問題的詳細資訊要比通過 sqlexception 的與**商無關的 sqlstate 元件所提供的資訊多得多。
oracle 資料庫及其 jdbc 驅動程式通過 error code 提供的更豐富得多的詳細資訊的乙個明顯的例子是 sqlstate ** 42000 (通常這指示語法錯誤或訪問問題)。對於 oracle jdbc 驅動程式的大量不同的 oracle 錯誤碼,sqlexception 都將返回相同的 sqlstate 值 (42000)。對應 sqlstate 的 42000 值的一些 oracle 錯誤碼包括 900(「無效 sql 語句」)、903(「無效表名」)、904(「無效識別符號」)、911(「無效字元」)和 936(「缺少表示式」)。此外很明顯任何**於 oracle jdbc 驅動程式的錯誤(與**於 oracle 資料庫的錯誤相反)都沒有任何對應的 sqlstate。正如這些例子所顯示那樣,oracle 特有的錯誤碼所提供的關於錯誤情況的詳細資訊要比與**商無關的 sqlstate 所提供的資訊更豐富得多。
有時候區分**於 oracle 資料庫的錯誤和**於 oracle jdbc 驅動程式的錯誤非常重要。例如,903(「無效的表名」)錯誤碼對應 oracle 資料庫錯誤碼 ora-00903。相反,17003(「無效的列索引」)錯誤碼對應 oracle jdbc 驅動程式錯誤碼 ora-17003。這兩種型別的錯誤碼(資料庫和 jdbc 驅動程式)都是 oracle 特有的(如 ora- 字首所指示的那樣)。因為沒有為**於 oracle jdbc 驅動程式的錯誤提供 sqlstate 錯誤碼,因此必須使用 oracle 特有的錯誤碼來區分由 jdbc 驅動程式導致的錯誤。
在下面的表 1 中列出了訪問 oracle 資料庫的 jdbc 中的一些最常見的錯誤。「示例**和/或注釋」列中的示例顯示了導致這種錯誤的 sql 語句型別或提供了關於表中的該行上顯示的特定錯誤的其他注釋。
表 1錯誤標記 oracle 錯誤 sqlstate 示例**和/或注釋
「唯一性約束」 1 2300 例如主鍵違規
「資源忙且指定 nowait 獲取資源」
54 61000 只有在指定了 nowait 時才出現
「無效的 sql 語句」
900 42000 ename from emp
「無效的表名」
903 42000 select ename from
「無效的識別符號」
904 42000 select empname from emp
「無效的字元」
911 42000 select ename from emp;
「缺少列」
917 42000 在 insert 語句中需要逗號來分隔列時遺漏逗號可能是乙個原因。
「在期望的位置沒有找到 from 關鍵字」
923 42000 select ename emp
「缺少表示式」
936 42000 select from emp
「表或檢視不存在」
942 42000 select ename from empp
「不能插入空值」
1400 23000 試圖向包含 not null 約束的列中插入空值
「值大於該列的指定精度」
1438 22003 試圖插入比列允許的精度更多的數字位數
「無效的數字」
1722 42000 試圖對字元執行數值函式
「完整性約束失敗」
2291 23000 試圖插入包含與現有主鍵不匹配的外來鍵的行
「值太大,」
12899 72000 試圖插入超出列允許範圍的的值(例如過多的字元)
「io 異常」
17002 無 **於 oracle jdbc 驅動程式的錯誤沒有對應的 sqlstate (null)
「無效的列索引」
17003 無
「無效的列名」
17006 無
「數值溢位」
17026 無
你知道的http的狀態碼有哪些,代表什麼意思?
一些常見的狀態碼為 200 伺服器成功返回網頁 404 請求的網頁不存在 503 伺服器超時 1xx 臨時響應 表示臨時響應並需要請求者繼續執行操作的狀態碼。100 繼續 請求者應當繼續提出請求。伺服器返回此 表示已收到請求的第一部分,正在等待其餘部分。101 切換協議 請求者已要求伺服器切換協議,...
字元的用意 參考文獻格式中的字元所代表的意義
文字文獻的字元標識 m 代表專著 c 代表 集nj d 代表學位 r 代表報告 s 代表標準 p 代表專利 a 代表析出文獻 析出文獻 這是文獻著錄的乙個術語,在分析著錄中用到分析著錄是指將文獻中一部 分材料分析出來,單獨作為乙個著錄單位所進行的著錄 例如 某圖書館由於借閱阿q 正傳的人很多,而館藏...
vue專案中有時間檔案路徑上有 ,代表什麼意思?
每個專案產品都會讓你加埋點,你是願意花幾天乙個個加,還是願意幾分鐘乙個小時加完去喝茶聊天?來試試這520web工具,高效加埋點,目前我們公司100號前端都在用,因為很好用,所以很自然普及開來了,推薦給大家吧 這是相對路徑的意思,同級目錄。上級目錄。這是webpack設定的路徑別名。在build we...