Ошибка при вставке данных при использовании openrowset - PullRequest
0 голосов
/ 27 апреля 2018

Я пытаюсь вставить данные в таблицу db2, используя openrowset. У меня есть файл CSV, расположенный в определенном месте, который я пытаюсь прочитать с помощью openrowset. Ниже приведен код:

using (OdbcConnection connection =
                           new OdbcConnection("DSN=DBHUBD"))
            {
                connection.Open();

                using (OdbcCommand cmd = new OdbcCommand("insert into trgisl.LCR_HQLA_WEIGHT  select * from OPENROWSET   ( 'MSDAQL','Driver={Microsoft Access Text Driver (*.txt, *.csv)}; " +
                                   "ColNameHeader = TRUE; Format = CSVDelimited; ''','select * from " + csvPath + "')", connection))
                { 

                    cmd.ExecuteNonQuery();
                    connection.Close();
            }
        }

Однако, когда я пытаюсь отладить, я получаю следующую ошибку:

ОШИБКА [42601] [IBM] [Драйвер CLI] [DB2 / AIX64] SQL0104N Неожиданный маркер "OPENROWSET" был найден после "EIGHT select * from". Ожидаемые токены могут включать: «UNNEST». SQLSTATE = 42601

Моей первоначальной мыслью была какая-то библиотечная / справочная проблема. также добавил библиотеку объектов Microsoft Excel 14.0 в ссылку на проект, но все равно получаю ту же ошибку. Интересно, есть ли другой синтаксис для openrowset

1 Ответ

0 голосов
/ 28 апреля 2018

Db2 отклоняет ваш синтаксис, потому что Db2 не распознает токен opwnrowset - это недопустимый синтаксис для Db2.

Если ваша цель - добавить объемные данные из файла CSV в таблицу Db2 с помощью c #, попробуйте использовать класс Db2BulkCopy, предоставленный провайдером IBM Data Server для .net.

См. Пример здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...