Перемещение данных образа MS SQL Server в MySQL longblob

#mysql #sql #sql-server #blob #varbinary

#mysql #sql #sql-сервер #большой двоичный объект #varbinary

Вопрос:

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

До сих пор я создал связанный сервер на сервере MS SQL, который ссылается на таблицу MySQL. Я могу загружать большие двоичные объекты на сервер MySQL, когда я нахожусь на нем локально (используя функцию LOAD_FILE …но стараюсь держаться подальше от этого, поскольку изображения должны быть на хосте MySQL, чтобы эта функция работала). Есть ли другой способ вставить большие двоичные объекты в MySQL без использования LOAD_FILE?

Я думаю, что должен быть способ разбить поле изображения MS SQL Server на двоичное, а затем вставить его в базу данных MySQL через связанный сервер?

Комментарии:

1. longblob в MySQL примерно эквивалентен переменной SQL Server (max), так что вы пробовали что-нибудь подобное select cast(imagecolumn as varbinary(max)) ?

2. Да, я обнаружил, что SQL Server, похоже, неявно преобразует изображение в varbinary (max)…. Я смог заставить это работать, используя метод OPENQUERY. INSERT INTO OPENQUERY(MYSQLLINKEDSRV, 'select name, file from mysqlTable') SELECT TOP 10 name, file from mssqlTable;

Ответ №1:

Да, я обнаружил, что SQL Server, похоже, неявно преобразует изображение в varbinary (max)….Я смог заставить это работать, используя метод OPENQUERY.

{ВСТАВИТЬ В OPENQUERY(MYSQLLINK RV, ‘выберите имя, файл из mysqlTable’) ВЫБЕРИТЕ имя TOP 10, файл из mssqlTable; }

Это, похоже, сработало и для меня… {ВСТАВИТЬ В MYSQL … mysqlTable (имя, файл) ЗНАЧЕНИЯ (‘name’,’xxxxx’)}

Я заметил, что при вставке в MySQL через linkedserver первый столбец вставленной записи был null….to исправьте это Я переместил свои целочисленные столбцы в конец моей инструкции insert, и, похоже, это работает нормально, я все еще изучаю, как справиться с этим, если естьнет целых столбцов…на самом деле не хочу иметь фиктивный столбец в моей таблице mysql, если мне это не нужно…