Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Обращение из MS SQL к сложному запросу из My SQL  [new]
svanrus
Member

Откуда:
Сообщений: 53
Имеется нагруженный запрос в МySQL.
Результат запроса надо выгрузить в таблицу в MS SQL.
Ключевая фишка - автоматизация. Повесть процедуру с запросом на шедулер и руками ничего не делать.

Через Openquery, как я понял, это не реально. В последний раз ошибка была

Msg 492, Level 16, State 1, Line 82
Duplicate column names are not allowed in result sets obtained through OPENQUERY and OPENROWSET. The column name "Таймзона(Разница с Москвой)" is a duplicate.

Скажите, пожалуйста, каким образом можно обратиться из MS SQL к запросу с океаном join-ов, case-ов, replace-ов и т.п. из My SQL ?
19 окт 17, 15:34    [20882932]     Ответить | Цитировать Сообщить модератору
 Re: Обращение из MS SQL к сложному запросу из My SQL  [new]
aleks222
Guest
Ну View и Alias-ы в MySQL ё?

1. Ваяем View и развешиваем Alias-ы на столбцы, лучше ангельские.
2. Имеем профит.
19 окт 17, 15:44    [20882968]     Ответить | Цитировать Сообщить модератору
 Re: Обращение из MS SQL к сложному запросу из My SQL  [new]
aleks222
Guest
3. Да и ваще, надо явно перечислять поля запроса. А то, нибось **** утыкали запрос.
19 окт 17, 15:46    [20882978]     Ответить | Цитировать Сообщить модератору
 Re: Обращение из MS SQL к сложному запросу из My SQL  [new]
svanrus
Member

Откуда:
Сообщений: 53
aleks222,

не юзал такие методы, где можно подробнее почитать по это с примерами ?
19 окт 17, 15:48    [20882985]     Ответить | Цитировать Сообщить модератору
 Re: Обращение из MS SQL к сложному запросу из My SQL  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36972
svanrus
aleks222,

не юзал такие методы, где можно подробнее почитать по это с примерами ?
На форуме и в дркументации по MySQL.

Сообщение было отредактировано: 19 окт 17, 15:49
19 окт 17, 15:49    [20882988]     Ответить | Цитировать Сообщить модератору
 Re: Обращение из MS SQL к сложному запросу из My SQL  [new]
svanrus
Member

Откуда:
Сообщений: 53
Гавриленко Сергей Алексеевич,

предлагаете искать по форуму

1. Ваяем View и развешиваем Alias-ы на столбцы, лучше ангельские.
2. Имеем профит.

?

Мб этому методу есть название какое-то или ссылку скинете. Буду благодарен.
19 окт 17, 15:55    [20883017]     Ответить | Цитировать Сообщить модератору
 Re: Обращение из MS SQL к сложному запросу из My SQL  [new]
F
Guest
Configuring a MySQL linked server on SQL Server 2008.
19 окт 17, 16:00    [20883036]     Ответить | Цитировать Сообщить модератору
 Re: Обращение из MS SQL к сложному запросу из My SQL  [new]
svanrus
Member

Откуда:
Сообщений: 53
F,

OLE DB provider "STREAM" for linked server "(null)" returned message "Произошли ошибки во время выполнения многошаговой операции OLE DB. По возможности, проверьте значения всех состояний OLE DB. Работа не выполнена.".
Msg 0, Level 11, State 0, Line 0
При выполнении текущей команды возникла серьезная ошибка.. При наличии результатов они должны быть аннулированы.
19 окт 17, 16:13    [20883085]     Ответить | Цитировать Сообщить модератору
 Re: Обращение из MS SQL к сложному запросу из My SQL  [new]
LSV
Member [заблокирован]

Откуда: Киев
Сообщений: 30817
svanrus
F,

OLE DB provider "STREAM" for linked server "(null)" returned message "Произошли ошибки во время выполнения многошаговой операции OLE DB. По возможности, проверьте значения всех состояний OLE DB. Работа не выполнена.".
Msg 0, Level 11, State 0, Line 0
При выполнении текущей команды возникла серьезная ошибка.. При наличии результатов они должны быть аннулированы.
Насколько помню, бывают разные драйвера по мускуль. Возможно выбран не тот драйвер.
И версию мускуля озвучьте.

зы: И вообще принято сразу озвучивать все версии всего участвующего ПО.
19 окт 17, 16:20    [20883125]     Ответить | Цитировать Сообщить модератору
 Re: Обращение из MS SQL к сложному запросу из My SQL  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7757
svanrus,

в запросе необходимо указывать латиницей уникальные псевдонимы столбцов возвращаемого набора данных.
19 окт 17, 16:31    [20883201]     Ответить | Цитировать Сообщить модератору
 Re: Обращение из MS SQL к сложному запросу из My SQL  [new]
svanrus
Member

Откуда:
Сообщений: 53
LSV,

спасибо за совет.

версия my sql 5.7...
версия ms sql 10.50...

мб ещё вариант SELECT * FROM OPENROWSET(' хз что тут указать, драйвер, если да, то в каком формате ? ', 'Server= ;UID= ;PWD= ', 'select') тут подойдёт ?
19 окт 17, 16:32    [20883213]     Ответить | Цитировать Сообщить модератору
 Re: Обращение из MS SQL к сложному запросу из My SQL  [new]
svanrus
Member

Откуда:
Сообщений: 53
LSV,

попробовал на одном case из ~150 строк.

выдал

OLE DB provider "MSDASQL" for linked server "SERVAK" returned message "[MySQL][ODBC 5.3(a) Driver][mysqld-5.7xxxx-log]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from table t2
end' at line 155".
Msg 7215, Level 17, State 1, Line 1
Could not execute statement on remote server 'SERVAK'.
19 окт 17, 16:53    [20883303]     Ответить | Цитировать Сообщить модератору
 Re: Обращение из MS SQL к сложному запросу из My SQL  [new]
Andy_OLAP
Member

Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион
Сообщений: 3151
svanrus
LSV,

попробовал на одном case из ~150 строк.

выдал

OLE DB provider "MSDASQL" for linked server "SERVAK" returned message "[MySQL][ODBC 5.3(a) Driver][mysqld-5.7xxxx-log]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from table t2
end' at line 155".
Msg 7215, Level 17, State 1, Line 1
Could not execute statement on remote server 'SERVAK'.

MySQL капризный - не пишите так.
select * from opemquery([link_to_mysql],'
select c1 from t1')
а пишите так
select * from opemquery([link_to_mysql],
'select c1 from t1')
Он не любит разные переводы строк в начале запроса.
19 окт 17, 16:56    [20883314]     Ответить | Цитировать Сообщить модератору
 Re: Обращение из MS SQL к сложному запросу из My SQL  [new]
svanrus
Member

Откуда:
Сообщений: 53
svanrus,

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

попробовал простейший пример

execute ('select POLE
from TABLE
end') at INFOPORT


OLE DB provider "STREAM" for linked server "(null)" returned message "Произошли ошибки во время выполнения многошаговой операции OLE DB. По возможности, проверьте значения всех состояний OLE DB. Работа не выполнена.".
Msg 0, Level 11, State 0, Line 0
При выполнении текущей команды возникла серьезная ошибка.. При наличии результатов они должны быть аннулированы.
19 окт 17, 16:57    [20883319]     Ответить | Цитировать Сообщить модератору
 Re: Обращение из MS SQL к сложному запросу из My SQL  [new]
svanrus
Member

Откуда:
Сообщений: 53
даже если лишний енд убрать таже хрень
19 окт 17, 17:04    [20883351]     Ответить | Цитировать Сообщить модератору
 Re: Обращение из MS SQL к сложному запросу из My SQL  [new]
Andy_OLAP
Member

Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион
Сообщений: 3151
svanrus
svanrus,

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

попробовал простейший пример

execute ('select POLE
from TABLE
end') at INFOPORT


OLE DB provider "STREAM" for linked server "(null)" returned message "Произошли ошибки во время выполнения многошаговой операции OLE DB. По возможности, проверьте значения всех состояний OLE DB. Работа не выполнена.".
Msg 0, Level 11, State 0, Line 0
При выполнении текущей команды возникла серьезная ошибка.. При наличии результатов они должны быть аннулированы.

Если TABLE - это название таблицы, то слово "end" уберите.
19 окт 17, 17:06    [20883358]     Ответить | Цитировать Сообщить модератору
 Re: Обращение из MS SQL к сложному запросу из My SQL  [new]
felix_ff
Member

Откуда: Moscow
Сообщений: 1364
svanrus,

У вас там сборная солянка всех СУБД чтоли? сокро тема будет по DB2 навеное.

Драйвер ODBC для версии mySQL 5.7.14 должен быть MySQL ODBC 5.3 Unicode driver (version 5.3.7)

EXEC ('SELECT POLE FROM `TABLE`;') AT [INFOPORT]


а вообще неплохо справку читать про особенности синтаксиса той СУБД из которой выбираете данные
19 окт 17, 17:28    [20883454]     Ответить | Цитировать Сообщить модератору
 Re: Обращение из MS SQL к сложному запросу из My SQL  [new]
svanrus
Member

Откуда:
Сообщений: 53
felix_ff,

да тут полный анус крокодила.

дрова стоят MySQL ODBC 5.3 ANSI Driver. Если драйвер менять другое что-нибудь думаешь не сломается ?
19 окт 17, 18:11    [20883621]     Ответить | Цитировать Сообщить модератору
 Re: Обращение из MS SQL к сложному запросу из My SQL  [new]
felix_ff
Member

Откуда: Moscow
Сообщений: 1364
svanrus,

ну так пробуй сначала в тестовой среде. на проде никогда такими вещами сразу не занимаются.

на сколько мне помнится новая версия драйвера ставится рядом а не "вместо" (могу ошибаться).
Драйвер следует обновлять когда на лицо косяки взаимодействия использующие данную библиотеку.
19 окт 17, 18:25    [20883665]     Ответить | Цитировать Сообщить модератору
 Re: Обращение из MS SQL к сложному запросу из My SQL  [new]
Andy_OLAP
Member

Откуда: я знаю, что Хапоэль Беэр-Шева - чемпион
Сообщений: 3151
svanrus
felix_ff,

да тут полный анус крокодила.

дрова стоят MySQL ODBC 5.3 ANSI Driver. Если драйвер менять другое что-нибудь думаешь не сломается ?

Все будет хорошо, у меня на проде стоят рядышком ANSI и Unicode, версия 5.03.09 от 18 июля, ODBC и такие, и такие, linked server работают.
19 окт 17, 18:32    [20883685]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить