0
我正在爲Informix使用JDBC驅動程序。我連接到我的主機很好,但是當執行查詢時,我的select中指定的字段之一返回空值。而不是僅僅檢索該值,並拋出SQLException:在遇到NULL值時使用JDBC驅動程序進行Informix + SQLException
查詢中的任何表中找不到列(colname)(或SLV未定義)。
我使用的驅動程序是這樣的:
try{
PreparedStatement pstmtDist = conn.prepareStatement(query2);
ResultSet rsDist = pstmtDist.executeQuery();
while(rsDist.next()){
int distCaseId = 0;
String distCaseIdStr = new String();
int distCaseDefNum = 0;
String distCaseDefNumStr = new String();
distCaseIdStr = rsDist.getObject("colname").toString();
distCaseId = Integer.parseInt(distCaseIdStr.trim());
distCaseDefNumStr = rsDist.getObject("colname2").toString();
distCaseDefNum = Integer.parseInt(distCaseDefNumStr.trim());
//System.out.println(String.format("distCaseId == %d distCaseDefNum == %d\n",distCaseId,distCaseDefNum));
}// end while district cases
rsDist.close();
pstmtDist.close();
connDist.close();
}
catch (SQLException e){
System.out.println("EXCEPTION: "+e.getMessage());
}
任何提示的歡迎!
-TU
你的問題是無法回答的。您尚未顯示錶架構,或者您正在嘗試準備和執行的查詢。您引用的錯誤消息與空值無關;它說查詢引用了一個不存在的列。這意味着查詢存在問題;在語法上,它是有效的,但在語義上,它不是。要解決這個問題,你必須顯示SQL和表格模式。 –
@JonathanLeffler:你的觀察是正確的,錯誤信息並不指向空值的問題。這是令人困惑的部分。但是,如果遇到空值,則會拋出異常。我希望以前有人遇到過這種情況。 我是公務員,我不認爲我應該發佈詳細的數據庫信息。我的查詢中的列是在架構中創建的。我可以使用dbaccess對數據庫運行查詢,並檢索行,但是一列的值爲空 - colname2。當我從查詢中刪除它並重新運行程序時,不會引發異常。 -TU –
您可以使用像CREATE TABLE x(y INTEGER,z INTEGER)這樣的兩列表來複制它嗎? INSERT INTO x(y,z)VALUES(0,0); INSERT INTO x(y,z)VALUES(1,NULL);'並顯示生成異常的Java? –