2014-05-07 29 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测试运行中?

回答