gpt4 book ai didi

java - DbUnit 没有看到 Oracle 列 NoSuchColumnException

转载 作者:行者123 更新时间:2023-11-29 09:20:35 34 4
gpt4 key购买 nike

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());

代码:

@Test
@DataSet(value="ReportTest.testPropagationToChild.xml", loadStrategy=RefreshLoadStrategy.class)
public void testPropagationToChild() {

数据集:

<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"/>

表:

 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

异常(exception):

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 等)可以导入。我正在使用 Oracle 11g,dbunit 2.4.8

为什么导入 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.

在我看来,您的专栏是使用大小写混合创建的,在这种情况下,它需要用双引号引起来,与字典中的情况完全一样。不确定如何在 DBUnit 中执行此操作。显然,某处有一个“映射”定义了表的列,并采用大写的列名。最好将该列重命名为全部大写。

This SO question/answer说明了我认为这里正在发生的事情。

关于java - DbUnit 没有看到 Oracle 列 NoSuchColumnException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6692426/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com