2013-02-04 327 views
0

我有一個選擇查詢,它將參數設置爲插入查詢。在插入語句中選擇ibatis

DB使用:DB2

insert into table_name 
(col1,col2,col3,col4) 
(select col1,col2,col3,col4 from table_name_2) 

上述聲明ibatis的失敗,如果選擇返回的cols的一個爲空。 我使用websphere和hav enalbled跟蹤日誌,我使用qtoad在跟蹤日誌中運行查詢,它運行良好。

我哪裏錯了?

請幫忙。

實際查詢:

INSERT INTO DB2TUNT.WKSET_VEND_ITEM (WKSET_I,WKSET_ITEM_I,VEND_I,GMS_VEND_I,VOP_TYPE_C,MFR_STYL_T)  
(SELECT 7725263,VITEM.DIR_ITEM_I,DIR.PRIM_VEND_I,VITEM.GMS_VEND_I,VITEM.VOP_TYPE_C,VITEM.MFR_STYL_T) 

錯誤:將參數映射 發生錯誤。 檢查語句(更新失敗)。

看起來像這樣只會發生在db2.is中任何人都可以幫忙嗎?

+0

我不明白失敗的上下文:如果它在WebSphere中的部署應用程序中正常工作,您何時收到失敗?在單元測試階段?在另一個Websphere?桌子的DDL是什麼?你能發佈IBatis的XML嗎? – alepuzio

+0

嘗試顯式設置JDBC類型:例如,「select#col1:VARCHAR#...'。這是ibatis的語法,如果您使用的是MyBatis 3.x,則它有點不同。 – partlov

+0

@partlov將在db2中工作嗎? – RVP

回答

0

在您插入的值中缺少關鍵字。

INSERT INTO table_name VALUES (...) 
+0

即使我添加'值',工作不正常,問題是隻有當其中一個列返回null,如果它返回一個值,它工作正常。我嘗試使用普通JDBC相同的語句,它工作正常 – RVP