當前位置:首頁 » 編程語言 » sql內部錯誤2350
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql內部錯誤2350

發布時間: 2023-02-12 13:19:44

Ⅰ 如何分析DB2的錯誤信息

com.ibm.db2.jcc.b.SqlException: DB2 SQL error: SQLCODE: -407, SQLSTATE: 23502, SQLERRMC: TBSPACEID=2, TABLEID=640, COLNO=0
分析DB2報出的錯誤信息,主要從六個方面進行分析:
SQLCODE, SQLSTATE, SQLERRMC, TBSPACEID, TABLEID, COLNO
1、先從SQLCODE和SQLSTATE兩方面的數字確認是什麼原因
2、在根據TBSPACEID和TABLEID兩方面確認是哪個表
SQL語句:select * from syscat.tables where tbspaceid="" and tableid=""
3、根據COLNO確認是哪個列出問題
SELECT * FROM SYSCAT.COLUMNS WHERE TABNAME= '*******' AND COLNO = 「」
三步就可以精確確認錯誤的原因了
原理分析:在DB2 資料庫中隱藏著一個內部表,專存儲資料庫的各個表。可以通過select * from syscat.tables進行查看。TBSPACEID, TABLEID, COLNO 都是表tables 中的欄位。
=====================================================================
but,
我的DB2資料庫錯誤信息:
com.ibm.db2.jcc.b.SqlException: DB2 SQL error: SQLCODE: -532, SQLSTATE: 23504, SQLERRMC: DE_ANOM_DETN.FK_TT_ANOM_TT_DETN_EVNT
根據SQLCODE和SQLERRMC可知:
-532 23504 刪除操作違反了已指定的參照約束
可以判斷出,應該是在刪除級聯表格時,發現參考的外鍵為空了,應該是提前刪除了。
但是我的錯誤信息裡面並沒有上面提示的那麼詳細,上面的是SQLERRMC: TBSPACEID=2, TABLEID=640, COLNO=0 ,而我的是SQLERRMC: DE_ANOM_DETN.FK_TT_ANOM_TT_DETN_EVNT,由此可以推斷出,SQLERRMC裡面的信息就是定位錯誤的核心!!可是這個是什麼呢??估計這個應該找資料庫設計文檔了。
最後沒管這個問題,直接把DB2恢復(restore)一個鏡像點了,然後mq(Qmanager)啟動,was啟動(前提是mq啟動)。問題可能是執行順序或者因為某個伺服器節點未啟動caused的,當這些伺服器節點都正常啟動之後,把資料庫restore正常狀態,然後就可以正常執行了。

Ⅱ SQL Server 內部錯誤 問題

第一:你那個第一句當然會內部錯誤了,因為select要對應(必須有)from來制定到底從那個表裡查,你沒有寫from 他到哪個表查啊??

第二:你這句的查詢屬性的前面的「bbb.」是指定表的簡寫吧?那為什麼沒有地方註明這個簡寫對應的是哪個表!!
舉例:如果你要查看order表裡的name屬性,select o.name from order o (這里的o就是order表的簡寫,o.name指的就是order表裡的name)