У меня есть пакет служб SSIS, который используется для экспорта данных из базы данных MySQL в базу данных SQL.По какой-то причине я могу читать данные только с использованием элемента «Источник ODBC», но не могу также просмотреть таблицу, хотя, выполняя некоторые другие тесты, я обнаружил, что также не могу вставить данные с элементом «Назначение ODBC».
Всякий раз, когда я пытаюсь получить, я получаю эту ошибку:
ОШИБКА [42000] [MySQL] [Драйвер ODBC 8.0 (w)] [mysqld-5.7.23] У вас есть ошибка в синтаксисе SQL;проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы найти правильный синтаксис для использования рядом с "TABLENAME
" в строке 1 (myodbc8w.dll).
Я использую MySQL 5.7.23 и MySQLРазъем / ODBC 8.0.Я пробовал переключаться между разъемами ANSI и Unicode;понижение версии разъемов (пробовал с 5.3, 5.2 и 5.1);изменение базы данных, таблицы и столбца кодификации;изменение режима доступа к данным в элементе источника ODBC (по умолчанию использовалось «имя таблицы»);переделать задачу.Все приводит к одной и той же ошибке, даже на разных компьютерах и базах данных.
РЕДАКТИРОВАТЬ:
Использование второго обходного пути @Hadi приводит к некоторым интересным результатам (первый не сделал 'у меня не работает).
При использовании соединителя ADO.NET или ODBC предоставленный запрос привел к ошибке.
Код ошибки: 1231. Переменная 'sql_mode' can 'установить значение «NO_AUTO_CREATE_USER»
После изменения запроса на
set sql_mode = 'STRICT_TRANS_TABLES, NO_ENGINE_SUBSTITUTION, ANSI_QUOTES'
ошибка сменилась предупреждением.
set sql_mode = 'STRICT_TRANS_TABLES, NO_ENGINE_SUBSTITUTION, ANSI_QUOTES' затронуты 0 строк, 1 предупреждение (я): 3135 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' и 'режимы ERROR_FOR_Y_ZI_RISO_RIS_O_ZISION следует использовать в строгом режиме.Они будут объединены со строгим режимом в будущем выпуске.
Тем не менее, это работало частично.Любые цитаты, акценты или любые другие символы, окружающие выбранное имя таблицы, должны быть удалены.Это делало его работоспособным при вставке данных, но при извлечении данных это делалось либо с помощью команды SQL, либо путем создания 2 разных соединений.