none
SSIS пакет: Подключение к источнику MySQL RRS feed

  • Вопрос

  • Мне нужно подключиться к MySQL базе данных и загрузить данные.

    Я создал .NET подключение, как в статье http://blogs.msdn.com/b/mattm/archive/2008/03/03/connecting-to-mysql-from-ssis.aspx. ODBC создать не получилось, но не об этом речь.

    В потоке данных SSIS-пакета создал источник ADO.NET, написал простенький запрос типа select * from table - работает. Но мне нужно задать параметры запроса. Значение параметра хранится в пользовательской переменной, назовём её Var1. Вопрос: как мне передать значение переменной в запрос?

    Пробовал различными способами: и указав вместо имени знак вопроса, и "@Var1", и "@[User::Var1]" - ничего не работает. Поиском и "методом тыка" нашёл как указать параметры для OLE DB подключения. но OLE DB коннектора к MySQL, доступного из SSIS нет.

    Можно ли для ADO.NET источника данных передать параметры в запрос?

    30 июня 2014 г. 7:15

Ответы

Все ответы

  • Если ничего не работает, всегда можно собрать текст запроса динамически и положить его в переменную. Например, в script task. Тут есть риски sql injection, конечно, но в ETL задачах этим часто можно пренебречь.  
  • Это единственное решение? к этому я и пришёл. Правда потом понял что не смогу с помощью SSIS обновлять данные (выполнять update), не прибегая вновь к хитростям. Проще говоря, смогу это сделать только через одно известное место.

    В общем, я забил на SSIS и сделал всё SQL-запросами :) вызываю хранимую процедуру, в которой с помощью OpenQuery дёргаю данные из MySQL и вставляю/обновляю в MS SQL.

    • Помечено в качестве ответа Skarzhinets Maxim 13 апреля 2015 г. 4:08
    13 апреля 2015 г. 4:08