Liquibase CSV loadData失败,带引号的字符串包含逗号

Liquibase CSV loadData失败,带引号的字符串包含逗号,csv,liquibase,loaddata,load-csv,liquibase-sql,Csv,Liquibase,Loaddata,Load Csv,Liquibase Sql,我正在尝试使用Liquibase更改日志集将CSV文件加载到SQLserver表中。 当将XLSX文件保存为CSV文件时,包含逗号的列保存在双引号中(请参见下面的第三个值),根据标准,这很好,但liquibase忽略双引号,并考虑双引号中的逗号 13,OV,“糖尿病门诊自我管理培训服务个人,每30分钟”,77.82,1,0,1/4/2016,G0108 来自命令行终端的错误消息: CSV文件v2.1/r21/TestData20212021.CSV第21行定义了10个值,标题有9个值。数字必须

我正在尝试使用Liquibase更改日志集将CSV文件加载到SQLserver表中。 当将XLSX文件保存为CSV文件时,包含逗号的列保存在双引号中(请参见下面的第三个值),根据标准,这很好,但liquibase忽略双引号,并考虑双引号中的逗号

13,OV,“糖尿病门诊自我管理培训服务个人,每30分钟”,77.82,1,0,1/4/2016,G0108

来自命令行终端的错误消息:


CSV文件v2.1/r21/TestData20212021.CSV第21行定义了10个值,标题有9个值。数字必须相等(检查带有嵌入逗号的无引号字符串)



从tbl_投票中删除,其中VcenarioID=13

尝试将
quotchar='”
添加到变更集中。这应该告诉liqbuiase将
中的所有内容视为一个值

查看文档

因此,您的变更集可以如下所示:

<changeSet  author="sprint-developer" id="sprint1-09">
    <loadData
            file="v2.1/r21/TestData2021.csv"
            tableName = "tbl_Votes" encoding="UTF-8" quotchar='"'>

        <column header="VcenarioID" name="VcenarioID" type="numeric"/>
        <column header="venefitCode" name="venefitCode" type="string"/>
        <column header="KostDescription" name="KostDescription" type="string"/>
        <column header="Kost" name="Kost" type="NUMERIC"/>
        <column header="OcKurrences" name="OKcurrences" type="numeric"/>
        <column header="KostIsPerIncident" name="KostIsPerIncident" type="boolean"/>
        <column header="KostDate" name="KostDate"  type="date"/>
        <column header="VundleId" name="VundleId"  type="NUMERIC"/>
        <column header="VillingCode" name="VillingCode" type="string"/>
    </loadData>
    <rollback>Delete from tbl_Votes where VcenarioID=13 </rollback>
</changeSet>

从tbl_投票中删除,其中VcenarioID=13

尝试将
quotchar='“
添加到变更集中。这应该告诉liqbuiase将
中的所有内容视为一个值

查看文档

因此,您的变更集可以如下所示:

<changeSet  author="sprint-developer" id="sprint1-09">
    <loadData
            file="v2.1/r21/TestData2021.csv"
            tableName = "tbl_Votes" encoding="UTF-8" quotchar='"'>

        <column header="VcenarioID" name="VcenarioID" type="numeric"/>
        <column header="venefitCode" name="venefitCode" type="string"/>
        <column header="KostDescription" name="KostDescription" type="string"/>
        <column header="Kost" name="Kost" type="NUMERIC"/>
        <column header="OcKurrences" name="OKcurrences" type="numeric"/>
        <column header="KostIsPerIncident" name="KostIsPerIncident" type="boolean"/>
        <column header="KostDate" name="KostDate"  type="date"/>
        <column header="VundleId" name="VundleId"  type="NUMERIC"/>
        <column header="VillingCode" name="VillingCode" type="string"/>
    </loadData>
    <rollback>Delete from tbl_Votes where VcenarioID=13 </rollback>
</changeSet>

从tbl_投票中删除,其中VcenarioID=13

元素“loadData”中不允许出现属性“quotchar”。您使用的是哪种版本的liquibase和liquibase xsd架构?它应该可以工作,因为liquibase 3.5.0Hi-Htmash,感谢您的回复我的版本是3.6.3。给您一个错误的
属性'quotchar'不允许出现在元素'loadData'中?查看
loadData
docs:Attribute'quotchar'不允许出现在元素'loadData'中。您使用哪个版本的liquibase和liquibase xsd架构?它应该可以工作,因为liquibase 3.5.0Hi-Htmash,感谢您的回复我的版本是3.6.3。给您一个错误的
属性'quotchar'不允许出现在元素'loadData'中?查看
加载数据
文档: