Я новичок в службах SSIS, и у меня возникают проблемы с передачей параметров в источник OLE DB. Я хочу запросить данные для заданного диапазона дат.
У меня есть две переменные: переменная1 с типом данных Дата и время, а значение переменной задается выражением DATEADD("day", -1, GETDATE())
. переменная2 типа данных Дата Время и значение переменной задается выражением DATEADD("day", 0, GETDATE())
Внутри OLE DB SOURCE для режима доступа к данным задана команда SQL, ниже приведен код SQL.
Select Col1, col2, col3, col4, coldate where Col1 = 'abc' and coldate between convert(varchar(10), ?, 101) and convert(varchar(10), ?, 101)
Я сопоставил параметры как
Параметр0, Пользователь::переменная1, ввод
Параметр1, Пользователь::переменная2, ввод
Когда я нажимаю предварительный просмотр, я получаю сообщение об ошибке
При отображении предварительного просмотра произошла ошибка
Дополнительная информация: Не указано значение для одного или нескольких обязательных параметров. (Собственный клиент Microsoft SQL Server 11.0)
Когда я отлаживаю задачу, я получаю сообщение об ошибке
[Источник OLE DB [38]] Ошибка: код ошибки SSIS DTS_E_OLEDBERROR. Произошла ошибка OLE DB. Код ошибки: 0x80040E21. Доступна запись OLE DB. Источник: собственный клиент Microsoft SQL Server 11.0 Hresult: 0x80040E21 Описание: недопустимое значение символа для спецификации приведения.
Примечание. Тип данных для столбца coldate — datetime.
Пожалуйста, помогите мне решить эту проблему. Мне удалось успешно выполнить запрос, используя команду SQL режима доступа к данным из переменной внутри источника OLE DB, но меня попросили не использовать режим доступа к данным в качестве команды SQL. Спасибо.
DATEADD(day, -1, GETDATE())
- person Nagaraj S   schedule 25.09.2014