Java DbUnit看不到Oracle列NoSuchColumnException

Java DbUnit看不到Oracle列NoSuchColumnException,java,oracle,dbunit,Java,Oracle,Dbunit,数据库单元设置: DatabaseConfig config = connection.getConfig(); config.setProperty(DatabaseConfig.FEATURE_SKIP_ORACLE_RECYCLEBIN_TABLES, true); config.setProperty(DatabaseConfig.PROPERTY_DATATYPE_FACTORY, new org.dbunit.ext.oracle.OracleDataTypeFactory());

数据库单元设置:

DatabaseConfig config = connection.getConfig();
config.setProperty(DatabaseConfig.FEATURE_SKIP_ORACLE_RECYCLEBIN_TABLES, true);
config.setProperty(DatabaseConfig.PROPERTY_DATATYPE_FACTORY, new org.dbunit.ext.oracle.OracleDataTypeFactory());
代码:

数据集:

<dataset>
    <REPORT ID="-1" NODE_NAME="TG1" NODE_LEVEL="2" PARENT_ID="0" RENA_STATUS="1" PSR_STATUS="1" PSR_AMOUNT="200" RENA_AMOUNT="1000" PSR_LAST_UPDATED_BY="u11" RENA_LAST_UPDATED_BY="u2"/>
例外情况:

Caused by: org.dbunit.dataset.NoSuchColumnException: REPORT.PSR_LAST_UPDATED_BY -  (Non-uppercase input column: PSR_LAST_UPDATED_BY) in ColumnNameToIndexes cache map. Note that the map's column names are NOT case sensitive. 
ID等其他列可以导入。我使用的是Oracle11g,DBUnit2.4.8

为什么无法导入上次更新的PSR\u?
谢谢

我相信你的特例告诉你出了什么问题:

非大写输入列:PSR\u LAST\u由中更新 ColumnNameToIndexes缓存映射。请注意,映射的列名是 不区分大小写

在我看来,您的列是用混合大小写创建的,在这种情况下,它需要用双引号引用,这正是字典中的大小写。不知道如何在DBUnit中实现这一点。显然,在某个地方有一个映射定义了表的列,并采用大写的列名。最好将该列重命名为全大写


说明了我认为这里正在发生的事情。

我认为您的异常情况告诉您出了什么问题:

非大写输入列:PSR\u LAST\u由中更新 ColumnNameToIndexes缓存映射。请注意,映射的列名是 不区分大小写

在我看来,您的列是用混合大小写创建的,在这种情况下,它需要用双引号引用,这正是字典中的大小写。不知道如何在DBUnit中实现这一点。显然,在某个地方有一个映射定义了表的列,并采用大写的列名。最好将该列重命名为全大写


说明了我认为这里正在发生的事情。

您是否找到了解决问题的方法?我现在也有同样的问题……你找到解决问题的办法了吗?我现在也有同样的。。。
 ID     PARENT_ID   NODE_NAME     NODE_LEVEL     RENA_STATUS     RENA_LAST_UPDATED     RENA_LAST_UPDATED_BY     RENA_AMOUNT           PSR_STATUS     PSR_LAST_UPDATED     PSR_LAST_UPDATED_BY     PSR_AMOUNT     RENA_COMMENT     ADDITIONAL_COMMENT
Caused by: org.dbunit.dataset.NoSuchColumnException: REPORT.PSR_LAST_UPDATED_BY -  (Non-uppercase input column: PSR_LAST_UPDATED_BY) in ColumnNameToIndexes cache map. Note that the map's column names are NOT case sensitive.