Ошибка интеграции данных Pentaho - неправильный синтаксис рядом с '' - PullRequest
0 голосов
/ 20 марта 2020

Я пытаюсь загрузить некоторые данные из CSV-файла в таблицу на SQL сервере. Я получаю синтаксическую ошибку, которая говорит мне, что что-то не так рядом с «». Это апострофы с нулевой шириной без перерыва между ними.

Я проверил, и данные, которые я пытаюсь загрузить, не содержат этого символа.

Это ошибка, которую показывает Pentaho .

2020/03/19 19:06:23 - SMS Output.0 - ERROR (version 8.3.0.0-371, build 8.3.0.0-371 from 2019-06-11 11.09.08 by buildguy) : Because of an error, this step can't continue:
2020/03/19 19:06:23 - SMS Output.0 - ERROR (version 8.3.0.0-371, build 8.3.0.0-371 from 2019-06-11 11.09.08 by buildguy) : org.pentaho.di.core.exception.KettleException: 
2020/03/19 19:06:23 - SMS Output.0 - Error batch inserting rows into table [DailySMS].
2020/03/19 19:06:23 - SMS Output.0 - Errors encountered (first 10):
2020/03/19 19:06:23 - SMS Output.0 - Incorrect syntax near ''.
2020/03/19 19:06:23 - SMS Output.0 - Incorrect syntax near ''.
2020/03/19 19:06:23 - SMS Output.0 - Incorrect syntax near ''.
2020/03/19 19:06:23 - SMS Output.0 - Incorrect syntax near ''.
2020/03/19 19:06:23 - SMS Output.0 - Incorrect syntax near ''.
2020/03/19 19:06:23 - SMS Output.0 - Incorrect syntax near ''.
2020/03/19 19:06:23 - SMS Output.0 - Incorrect syntax near ''.
2020/03/19 19:06:23 - SMS Output.0 - Incorrect syntax near ''.
2020/03/19 19:06:23 - SMS Output.0 - Incorrect syntax near ''.
2020/03/19 19:06:23 - SMS Output.0 - Incorrect syntax near ''.
2020/03/19 19:06:23 - SMS Output.0 - 
2020/03/19 19:06:23 - SMS Output.0 - 
2020/03/19 19:06:23 - SMS Output.0 - Error updating batch
2020/03/19 19:06:23 - SMS Output.0 - Incorrect syntax near ''.
2020/03/19 19:06:23 - SMS Output.0 - 
2020/03/19 19:06:23 - SMS Output.0 - 
2020/03/19 19:06:23 - SMS Output.0 -    at org.pentaho.di.trans.steps.tableoutput.TableOutput.writeToTable(TableOutput.java:348)
2020/03/19 19:06:23 - SMS Output.0 -    at org.pentaho.di.trans.steps.tableoutput.TableOutput.processRow(TableOutput.java:125)
2020/03/19 19:06:23 - SMS Output.0 -    at org.pentaho.di.trans.step.RunThread.run(RunThread.java:62)
2020/03/19 19:06:23 - SMS Output.0 -    at java.lang.Thread.run(Unknown Source)
2020/03/19 19:06:23 - SMS Output.0 - Caused by: org.pentaho.di.core.exception.KettleDatabaseBatchException: 
2020/03/19 19:06:23 - SMS Output.0 - Error updating batch
2020/03/19 19:06:23 - SMS Output.0 - Incorrect syntax near ''.
2020/03/19 19:06:23 - SMS Output.0 - 
2020/03/19 19:06:23 - SMS Output.0 -    at org.pentaho.di.core.database.Database.createKettleDatabaseBatchException(Database.java:1430)
2020/03/19 19:06:23 - SMS Output.0 -    at org.pentaho.di.trans.steps.tableoutput.TableOutput.writeToTable(TableOutput.java:295)
2020/03/19 19:06:23 - SMS Output.0 -    ... 3 more
2020/03/19 19:06:23 - SMS Output.0 - Caused by: java.sql.BatchUpdateException: Incorrect syntax near ''.
2020/03/19 19:06:23 - SMS Output.0 -    at net.sourceforge.jtds.jdbc.JtdsStatement.executeBatch(JtdsStatement.java:1069)
2020/03/19 19:06:23 - SMS Output.0 -    at org.pentaho.di.trans.steps.tableoutput.TableOutput.writeToTable(TableOutput.java:291)
2020/03/19 19:06:23 - SMS Output.0 -    ... 3 more
2020/03/19 19:06:23 - CargaSMS - ERROR (version 8.3.0.0-371, build 8.3.0.0-371 from 2019-06-11 11.09.08 by buildguy) : Errors detected!

Я попытался изменить типы полей данных, чтобы посмотреть, помогает ли это, но эта ошибка все еще отображается.

Pentaho версия 8.3

SQL Server 2008

EDIT1

Файлы, с которыми я работаю, кодируются как UTF-8-BOM. Я попытался преобразовать их в UTF-8, как советовал пользователь, но это не сработало. Я начинаю подозревать, что файлы не имеют к этому никакого отношения.

Я пытался создать новую таблицу с помощью Pentaho.

CREATE TABLE dbo.DailySMS_test2
(
  celular VARCHAR(15)
, msg VARCHAR(149)
, id VARCHAR(15)
, status VARCHAR(100)
, DateSent VARCHAR(100)
)
;

И я получаю то же самое ошибка

Incorrect syntax near ''.

Я также попытался скопировать сгенерированный Pentaho запрос в SSMS и получил эту ошибку:

Msg 102, Level 15, State 1, Line 3
Incorrect syntax near ''.

1 Ответ

0 голосов
/ 24 марта 2020

Мне удалось решить эту проблему, переименовав первый столбец, удалив, таким образом, пробел Zero Width No Break.

Кодировка файлов, которые я пытался прочитать с помощью Pentaho, - это UTF-8-BOM, но Pentaho не имеет возможности читать UTF-8-BOM, только UTF-8. Таким образом, он просто добавил пробел Zero Width No Break в начало файла, который был именем первого столбца.

Итак, переименовав первый столбец или просто удалив один символ перед первой буквой, эта проблема была решена.

...