Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 SSIS - путь источника Excel  [new]
LolBee
Member

Откуда: Киев
Сообщений: 45
Всем Добрый день!

Прошу помощи!
Речь пойдет о SSIS.
Необходимо выполнить импорт данных из Excel источника в таблицу базы с рядом проверок.
Я создал пакет, указал файл источника, Reject-файл и т.д. и все заработало..
НО!
Суть в том что название файла источника состоит из 2-х частей:
[Имя файла]_[переменная дата(год,неделя)].xls

И вот тут то возникает тупняк.. Имя файлика то поменяется и на след.неделе джоб выдаст мне пламенный эррор..

Пытался искать в инете долго очень..безрезультатно((
Может вы сможете подсказать как

Спасибо заранее!
6 май 14, 13:01    [15979186]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - путь источника Excel  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 2995
LolBee,
1. передавайте название файла в "источник Excel"
2. генерите имя файла в самом пакете (expression)
3. запихните в контейнер "foreach loop"

учитывая "[Имя файла]_[переменная дата(год,неделя)].xls" второй вариант идеально подходит
6 май 14, 13:08    [15979241]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - путь источника Excel  [new]
LolBee
Member

Откуда: Киев
Сообщений: 45
HandKot,

Спасибо, сделал через foreach =)
6 май 14, 17:46    [15981806]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - путь источника Excel  [new]
LolBee
Member

Откуда: Киев
Сообщений: 45
Поторопился(
Перерыл пол инета и так ничего не нашел..
Ничего не получилось..

Не знаю что делать(
У меня есть чужой пакет в котором это реализовано.. делаю свой 1 в 1 и ничего не работает.
Мне надо понять как это делается!

Пожалуйста, может кто-то описать мне подробно как создать такой пакет? =(

Очень надеюсь на помощь.. спасибо!
12 май 14, 15:26    [16004901]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - путь источника Excel  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5111
что конкретно вызывает "тупняк",
не получается сформировать в пакете значение [Имя файла]_[переменная дата(год,неделя)].xls?
12 май 14, 16:19    [16005253]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - путь источника Excel  [new]
LolBee
Member

Откуда: Киев
Сообщений: 45
Я пробовал это делать так:

- Создаю, New excel connection указывая путь к существуюшему файлу (File052014.xls)
- Создаю 2 переменные:
@FolderPath с путем к этому файлу и переменную типа названия файла (@FileName)
- Затем в excel connection в поле Expressions забиваю эти 2 пременные как ExcelFilePath:
@[User::Folder_Path]+"\\"+ @[File_Name]

Data Flow с всем этим закидываю в Foreach loop в котором настраиваю что это Foreach File Enumerator,
указываю путь к файлу и его имя в таком видe: file*.xls
А в закладке Variable mappings добывляю мою переменную @Filename

Но выдает ошибку:
Package Validation error =(

К сообщению приложен файл. Размер - 13Kb
12 май 14, 16:58    [16005576]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - путь источника Excel  [new]
LolBee
Member

Откуда: Киев
Сообщений: 45
Ошибка возникает сразу как меняю прямой путь к файлу в ексель подключении на переменную..
Может что-то не так делаю.. Я не могу найти подробную документацию по данной теме(
12 май 14, 17:00    [16005595]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - путь источника Excel  [new]
Glory
Member

Откуда:
Сообщений: 104760
А DelayValidation=TRUE вы задали у пакета ?
12 май 14, 17:01    [16005600]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - путь источника Excel  [new]
LolBee
Member

Откуда: Киев
Сообщений: 45
Интересно так получилось)

У меня на Data flow было False
Но а самом Excel source пункт ValidateExternalMetadata стояло True!
поставил False и все заработало =))))
Вы это имели в виду, да?

Спасибо!
12 май 14, 17:09    [16005663]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - путь источника Excel  [new]
Glory
Member

Откуда:
Сообщений: 104760
LolBee
Вы это имели в виду, да?

Сравните со "У меня есть чужой пакет в котором это реализовано.. "
12 май 14, 17:16    [16005709]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - путь источника Excel  [new]
LolBee
Member

Откуда: Киев
Сообщений: 45
Там True стоит..
12 май 14, 17:26    [16005772]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - путь источника Excel  [new]
qwertEHOK
Member

Откуда: Волгоград
Сообщений: 273
а почему вы не используете
SELECT * from OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0', 'Data Source=c:\Лист.xls;Extended Properties=Excel 8.0')...лист1$

???
12 май 14, 17:29    [16005792]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - путь источника Excel  [new]
LolBee
Member

Откуда: Киев
Сообщений: 45
qwertEHOK,

Я в начале пытался пойти этим путем, но пулучил ошибку:

The OLE DB provider "Microsoft.Jet.OLEDB.4.0" has not been registered.

Порылся в инете, пишут что из-за того что сервер 64-битный..И советовали SSIS как альтернативу
12 май 14, 17:34    [16005830]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - путь источника Excel  [new]
qwertEHOK
Member

Откуда: Волгоград
Сообщений: 273
а вот так
Select a.* from OpenrowSet(
	'Microsoft.ACE.OLEDB.12.0', 
	'Excel 12.0;Database=d:\123.xls', 
	'SELECT * FROM [Лист_1$]'
	) as a

?
12 май 14, 17:40    [16005860]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - путь источника Excel  [new]
qwertEHOK
Member

Откуда: Волгоград
Сообщений: 273
или так

 SELECT *
FROM OPENDATASOURCE('Microsoft.ACE.OLEDB.12.0', 'Data Source=d:\123.xls;Extended Properties=Excel 8.0')...Лист_1$


Я уже не помню что именно работает
12 май 14, 17:41    [16005874]     Ответить | Цитировать Сообщить модератору
 Re: SSIS - путь источника Excel  [new]
LolBee
Member

Откуда: Киев
Сообщений: 45
Та оно то все хорошо, но реализовать такой алгоритм, мне кажется, лучше всего в SSIS))
Кстати все заработало! Спасибо всем!! =)

К сообщению приложен файл. Размер - 26Kb
14 май 14, 16:17    [16016556]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить