2015-12-30 6 views
0

Я использую источник ODBC в задаче потока данных SSIS. Я хочу, чтобы выбрать только самые последние данные из источника данных ODBC,Как передать переменную в sql-запрос источника ODBC в SSIS?

Вот мой запрос:

Select * из ODBCTable где дата> = @ [пользователь :: date1]

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

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

Спасибо в Advanced.

+0

Я определил переменную, но как я могу ее использовать? insted of @ [user :: date1], как их сопоставить. – Jack

+0

если переменная определена, то используйте '?' Like 'where date> =?' – wiretext

+0

Но мое имя переменной - дата1, а затем как i date date1 to?. – Jack

ответ

1

В тексте SQL команд, сначала объявить переменную затем написать SQL заявление:

declare @user_date1 date = cast(? as date) 

Select * from ODBCTable where date >= @user_date1 

Затем нажмите на кнопку Параметры, чтобы отобразить значение параметра SSIS в переменной SQL. Отображение выполняется в порядке появления в вашей команде SQL - не по имени.

1

@Jack, если вы используете компонент задачи выполнения sql, попробуйте переключить встроенный sql на сохраненный proc, а входная переменная будет значением user :: date1 следующим образом: 1. в SQLStatement в Execute SQL Task Editor тип EXEC [схема] .NewStoredProcName? (2) при сопоставлении параметров, выберите User :: date1 в качестве имени переменной, выберите ввод как направление, любой тип данных даты, который вы используете под типом данных, установите имя параметра на 0

1

Вы можете сделать это таким образом создайте один запрос переменной , затем создайте запрос там с параметром. enter image description here

enter image description here

THEN GOTO свойств потока данных, в выражении выберите ODBC source.sqlcoomand и передать эту переменную здесь.

При первом запуске замените исходный запрос командой выражения sql. Благодаря

Смежные вопросы