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

Откуда:
Сообщений: 4
Задача:
есть база A на MS SQL 2005
есть база B на MySQL

Надо сделать хранимую процедуру на MSSQL которая бы заполнила таблицы на MySQL и запустила на MySQL хранимую процедуру для обработки загруженных данных

Сейчас на MSSQL подключен линкедсервер на MySQL
заполнить таблицы удалось только так:

  DELETE FROM OPENQUERY(TEST_ODBC,'SELECT Id FROM ut_db.ext_Catalog')
  INSERT INTO OPENQUERY(TEST_ODBC,'SELECT Id, Name_Catalog FROM ut_db.ext_Catalog') (Id_Catalog, Name_Catalog)
    SELECT Id_Catalog, Name_Catalog FROM dbo.[Catalog]



Вопросы:
1) как из хранимой процедуры MSSQL запустить на выполнение хранимую процедуру на MySQL. Не могу понять синтаксис вызова.
execute TEST_ODBC..ut_db.sp_update_catalog

не работает:
Поставщик OLE DB "MSDASQL" для связанного сервера "TEST_UNIKTORG_RU" вернул сообщение "[MySQL][ODBC 5.1 Driver][mysqld-5.1.58-1~dotdeb.1]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 '?=call "ut_db"."sp_update_catalog";1' at line 1".
Сообщение 7212, уровень 17, состояние 1, строка 1

Не удалось выполнить процедуру "sp_update_catalog" на удаленном сервере "TEST_UNIKTORG_RU".
2) как получить обратно результаты обработки. Это нужно для вывода сообщения о загрузки пользователю типа: "загружено 1000 товаров, из них новых: 10; обнволено: 15; удалено 5"
3) как бороться с кодировками? На MSSQL используются Cyrillic_General_CI_AS, а на MySQL utf-8. В результате обычный INSERT INTO ...(....) SELECT... ошибок не выдает, но и значения на русском не загружает.
22 окт 12, 13:50    [13356422]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить