Часть моего текущего проекта включает в себя преобразование электронной таблицы Excel 2007 с несколькими вкладками в равное количество плоских файлов с разделителями вертикальной чертой с использованием пакета SSIS. У меня есть одна задача потока данных, которая открывает файл excel и выбирает имена всех вкладок и объектную переменную. Вторая задача потока данных внутри цикла for each пытается прочитать первые 32 столбца с каждой вкладки. Источник excel во второй задаче потока данных настроен на использование команды sql из переменной, а переменная представляет собой выражение, которое заменяет имя вкладки на постоянное выражение sql, подобное этому:
SELECT F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13, F14, F15, F16, F17,
F18, F19, F20, F21, F22, F23, F24, F25, F26, F27, F28, F29, F30, F31, F32
FROM [Securities Portfolio$]
Поле «Первая строка содержит имена столбцов» в диспетчере соединений Excel не отмечено.
Вот в чем дело: это работает для большинства вкладок. Тот что выше работает. Однако три из них вызывают следующую ошибку:
The SQL command requires 2 parameters, but the parameter mapping only has 0 parameters.
Я изменил пакет для печати всех операторов SQL, используемых в файле журнала. Разница только в названии вкладки. Ни у кого нет вопросительных знаков, которые, как я думал, используются SSIS для маркировки параметров. Я не могу понять, что вызывает это, или даже чем неудачные SQL-запросы отличаются от тех, которые работают:
SELECT F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13, F14, F15, F16, F17,
F18, F19, F20, F21, F22, F23, F24, F25, F26, F27, F28, F29, F30, F31, F32
FROM [Capital - Part1$]
SELECT F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13, F14, F15, F16, F17,
F18, F19, F20, F21, F22, F23, F24, F25, F26, F27, F28, F29, F30, F31, F32
FROM [Capital - Part2$]
SELECT F1, F2, F3, F4, F5, F6, F7, F8, F9, F10, F11, F12, F13, F14, F15, F16, F17,
F18, F19, F20, F21, F22, F23, F24, F25, F26, F27, F28, F29, F30, F31, F32
FROM [Securities Sources$]
Любая помощь будет оценена по достоинству.