2014-05-07 28 views
1

的問題是現有的Oracle表(即我不能改變)和混合大小寫列名,如DBUnit的失敗與Oracle混合大小寫列名

create table BADTAB (ID varchar(16) not null, "Name" varchar2(64), 
     constraint I_BADTAB_PK PRIMARY KEY(ID)); 

當我嘗試從一個XML做DBUnit的INSERT數據集失敗

Caused by: java.sql.SQLException: ORA-00904: "NAME": invalid identifier 

當我用引號將列名失敗

<column>"Name"</column> 

org.dbunit.dataset.NoSuchColumnException: BADTAB."NAME" - (Non-uppercase input column: "ReadingsPres") in ColumnNameToIndexes cache map. 
    Note that the map's column names are NOT case sensitive. 
    at org.dbunit.dataset.AbstractTableMetaData.getColumnIndex(AbstractTableMetaData.java:117) 
    ... 

問題: 如何覆蓋DBUnit的列元數據以使其識別小寫字母名稱?
我重寫了哪些類,以及如何將它們注入到DBUnit測試運行中?

回答