Liquibase CSV loadData失败,带引号的字符串包含逗号
我正在尝试使用Liquibase更改日志集将CSV文件加载到SQLserver表中。 当将XLSX文件保存为CSV文件时,包含逗号的列保存在双引号中(请参见下面的第三个值),根据标准,这很好,但liquibase忽略双引号,并考虑双引号中的逗号 13,OV,“糖尿病门诊自我管理培训服务个人,每30分钟”,77.82,1,0,1/4/2016,G0108 来自命令行终端的错误消息: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个值。数字必须
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'中代码>?查看加载数据
文档: