我有一个CSV文件,其格式如下,我想用Liquibase的loadData功能加载到DB2数据库:
2,92551,1,Nature of Service / Procedure,1
(注意在任何地方都没有引号)
我希望Liquibase能够治疗第一,第三和第二第5列为INTEGERS,第2列为第2列和第2列。第4栏为STRINGS。
我的列定义如下:
columns:
- column:
name: uid
type: NUMERIC
- column:
name: hcpcs_cpt_code
type: STRING
- column:
name: mue_value
type: NUMERIC
- column:
name: mue_edit_rationale
type: STRING
- column:
name: metadata_uid
type: NUMERIC
Liquibase我们将所有列包装在单引号中并导致插入失败:
[INFO] INSERT INTO "XXXXX".MUE_NCCI_EDIT("2", "92551", "1", "Nature of Service / Procedure", "1") VALUES(?, ?, ?, ?, ?)
导致
Error: com.ibm.db2.jcc.am.SqlSyntaxErrorException: "2" is not valid in the context where it is used.. SQLCODE=-206, SQLSTATE=42703, DRIVER=4.22.29
我的CSV只是简单的愚蠢还是有缺少的Liquibase配置?
我尝试了separator
和quotechar
组合的各种组合而没有运气。
答案 0 :(得分:0)
好的,至少对我来说,答案是在csv文件中添加标题行,即:
uid,hcpcs_cpt_code,mue_value,mue_edit_rationale,metadata_uid
2,92551,1,Nature of Service / Procedure,1
这与标题attr相结合。在列定义上解决了问题:
columns:
- column:
name: uid
type: NUMERIC
header: uid
- column:
name: hcpcs_cpt_code
type: STRING
header: hcpcs_cpt_code
- column:
name: mue_value
type: NUMERIC
header: mue_value
- column:
name: mue_edit_rationale
type: STRING
header: mue_edit_rationale
- column:
name: metadata_uid
type: NUMERIC
header: metadata_uid
我认为错误消息/文档在这里可能更清楚了。我只是通过反复试验来解决。