MySQL > Связанный сервер SSMS 2012 "Запрошенное преобразование не поддерживается".

Эта маленькая жемчужина заставляла меня держаться некоторое время, и я все еще не намного впереди.

Среда

  • SSMS 2012 SP1 (целевой) (64-разрядная версия сервера 2012)
  • MySQL (источник)
  • Связанный сервер с использованием ODBC 5.3 64-битный драйвер Unicode

Я пытаюсь портировать таблицы из MySQL на SSMS. Большинство таблиц работают нормально.... пока я не попал в столбец, который приведен> 8000 символов.

Поскольку у меня возникла проблема, я попытался просто выбрать оскорбительный столбец

Запуск простой

SELECT RogueCol  FROM LinkServer...MyTbl

возвращает ошибку

OLE DB provider "MSDASQL" for linked server "LinkServer" returned message "Requested conversion is not supported.".
Msg 7341, Level 16, State 2, Line 1
Cannot get the current row value of column "[MSDASQL].RogueCol" from OLE DB provider "MSDASQL" for linked server "LinkServer". 

Поэтому я тогда попробовал

SELECT * FROM OPENQUERY(LinkServer, 'SELECT RogueCol  FROM MyTbl')

Это возвращает ту же ошибку

Я полностью сбит с толку, так как не могу даже просмотреть данные в SSMS, не говоря уже о ВЫБРАТЬ их в таблицу (у меня есть скрипт, который будет приводить поля в соответствии с некоторыми правилами на основе их исходных приведений MySQL)

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

Кастом MySQL RogueCol является varchar(32767)

Настройки, включенные в провайдере MSDASQL:

  • Вложенные Запросы
  • Уровень Ноль Только
  • Разрешить Inprocess
  • Поддерживает лайк

До сих пор я пробовал множество вещей, которые я "открыл" на различных форумах, включая:

  • CASTING, CONVERTING, LEFT, LTRIM (RTRIM ()) по фактическому вызову.
  • Попытался также ограничить его записью TOP 1 (LEN = 45, в строке нет пробелов или посторонних символов)
  • Установите ANSI-версию драйвера ODBC
  • Различные настройки в драйвере ODBC (Разрешить большие наборы результатов, изменение наборов символов, ограничение столбцов на 32 бита, символ Pad с пробелом среди других)

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

Большое спасибо

1 ответ

Решение

ОБНОВИТЬ

Так что, парни и девушки, нет ответов

В итоге мне пришлось поговорить с администратором базы данных, ответственным за базу данных MySQL, и попросить его изменить приведение RogueCol с varchar(32767) на TEXT.

Работа на рабочем месте

Другие вопросы по тегам