Может ли Liquibase обрабатывать данные CSV без кавычек - PullRequest
0 голосов
/ 22 мая 2018

У меня есть файл CSV в следующем формате, который я хотел бы загрузить в базу данных DB2 с функцией loadData Liquibase:

2,92551,1,Nature of Service / Procedure,1

(Обратите внимание, что нигде нет кавычек)

Я бы хотел, чтобы Liquibase обрабатывал 1-й, 3-й и 5-й столбцы как INTEGERS, а 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, но безуспешно.

1 Ответ

0 голосов
/ 22 мая 2018

Хорошо, ответ, по крайней мере для меня, заключался в добавлении строки заголовка в файл 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

Я думаю, что сообщения об ошибках / документация могли бы быть здесь более понятными.Я решил только путем проб и ошибок.

...