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

Откуда: Киев
Сообщений: 225
Доброго дня
Надо изменить имя заведомо известного файла на вычисляемое имя (ддммгг.txt)
Никак не могу разобраться с переменными и функционалом изменения типа переменой.
Помогите пож-та.
4 фев 09, 15:36    [6778695]     Ответить | Цитировать Сообщить модератору
 Re: SSIS изменение имени файла  [new]
Bruin_Balu
Member

Откуда:
Сообщений: 112
kirser,

можно так:

Заводите @var переменную в SSIS-->Variables для вычисляемого имени, видимо где-то в процессе работы вашего пакета передаете туда значение.
Выбираете задачу File System Task. В Operation кликаете на Rename file. В SourceConnection устанавливаете коннекшн к известному вам файлу. В DestinationConnection устанавливаете коннекшн к Create File (т.е. в File Connection Manager Editor выбираете Usage Type = Create File), в File пишете любой файл, назовем этот коннекшн например New. Далее, ищете вкладочку Connection Managers, находите среди прочих наш New, встаете на него. Тогда во вкдадке Properties вы видете свойства этого коннекшена. В Properties-->Expressions создаете новый Property Expression: в Property выбираете ConnectionString, в Expression записываете просто @var.

Вот, собственно, и все. Надеюсь, я понятно объяснила.
4 фев 09, 17:02    [6779313]     Ответить | Цитировать Сообщить модератору
 Re: SSIS изменение имени файла  [new]
kirser
Member

Откуда: Киев
Сообщений: 225
Bruin_Balu
kirser,

можно так:

Заводите @var переменную в SSIS-->Variables для вычисляемого имени,


Не совсем нашел, где заводить переменные... Тыцьнешь меня носом в нужное место в проекте?
4 фев 09, 17:40    [6779604]     Ответить | Цитировать Сообщить модератору
 Re: SSIS изменение имени файла  [new]
Bruin_Balu
Member

Откуда:
Сообщений: 112
У вас должна быть стандартная панель сверху окошка вашего проекта: File, Edit, View, ..., SSIS,...
нашли? нас интересует SSIS. Заходите туда, выбираете Variables. Появится окошко, где можно завести новые переменные.
4 фев 09, 18:01    [6779784]     Ответить | Цитировать Сообщить модератору
 Re: SSIS изменение имени файла  [new]
kirser
Member

Откуда: Киев
Сообщений: 225
Нашел, спасибо, почти все работает.
Только не соображу, как моей переменной @Var передать/присвоить значение. По идее мне надо подкидывать сегядняшнюю дату в числах+.тхт. подскажешь как?
5 фев 09, 10:39    [6781616]     Ответить | Цитировать Сообщить модератору
 Re: SSIS изменение имени файла  [new]
Владимир М.
Member

Откуда: Москва
Сообщений: 4990
Навскидку - в expressions
5 фев 09, 10:46    [6781686]     Ответить | Цитировать Сообщить модератору
 Re: SSIS изменение имени файла  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Или передавать через параметры при запуске пакета.
Можно ещё сделать таск, который будет присваивать переменной текущую дату - подойдет как скриптовый, так и Execute SQL Task.

Сообщение было отредактировано: 5 фев 09, 10:53
5 фев 09, 10:52    [6781738]     Ответить | Цитировать Сообщить модератору
 Re: SSIS изменение имени файла  [new]
ЛёхаSPb
Member

Откуда:
Сообщений: 138
kirser,

Я такую задачу решил на c# написав хранимую процедуру CLR. Имхо это удобнее
5 фев 09, 11:26    [6781986]     Ответить | Цитировать Сообщить модератору
 Re: SSIS изменение имени файла  [new]
Владимир М.
Member

Откуда: Москва
Сообщений: 4990
Вариантов много. Я использую присвоение переменным в expression.
Но как кому удобно.
5 фев 09, 11:30    [6782017]     Ответить | Цитировать Сообщить модератору
 Re: SSIS изменение имени файла  [new]
kirser
Member

Откуда: Киев
Сообщений: 225
В expressions чего? какого элемента?
И какой должен быть синтаксис?
К примеру, мне надо передать переменнной @Var в текстовом виде Day(GetDate())+Month(GetDate())+Year(GetDate())+".tov"
5 фев 09, 12:01    [6782263]     Ответить | Цитировать Сообщить модератору
 Re: SSIS изменение имени файла  [new]
Bruin_Balu
Member

Откуда:
Сообщений: 112
можно так:

в Execute SQL Task во вкладке General в SQLStatement пишете

Declare @Var /тип/
SET @Var=/вычисляете нужное вам значение/
SET ? = @Var

во вкладке Parameter Mappings устанавливаете следующее: Variable Name - выбираете вашу переменную User::Var, Direction - Output, DataType - тип вашей переменной, Parameter Name - 0, Parameter Size - размер вашей переменой

Пусть меня поправят, если что не так...
5 фев 09, 12:57    [6782747]     Ответить | Цитировать Сообщить модератору
 Re: SSIS изменение имени файла  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
kirser
В expressions чего? какого элемента?
И какой должен быть синтаксис?
К примеру, мне надо передать переменнной @Var в текстовом виде Day(GetDate())+Month(GetDate())+Year(GetDate())+".tov"
Ээээ-ммм
В там есть хороший построитель выражений. Например, если вам надо получить текущую дату, а синтаксис вы не знаете, то открываете функции и перетаскиваете нужную функцию в поле построител и т.д.
5 фев 09, 13:16    [6782899]     Ответить | Цитировать Сообщить модератору
 Re: SSIS изменение имени файла  [new]
kirser
Member

Откуда: Киев
Сообщений: 225
tpg
[quot kirser]Например, если вам надо получить текущую дату, а синтаксис вы не знаете, то открываете функции и перетаскиваете нужную функцию в поле построител и т.д.

Писал
(DT_NTEXT)Day(GetDate())+Month(GetDate())+Year(GetDate())+".tov"

выбивает ошибку
5 фев 09, 13:49    [6783132]     Ответить | Цитировать Сообщить модератору
 Re: SSIS изменение имени файла  [new]
kirser
Member

Откуда: Киев
Сообщений: 225
[quot Bruin_Balu]можно так:

в Execute SQL Task во вкладке General в SQLStatement пишете

Declare @Var /тип/
SET @Var=/вычисляете нужное вам значение/
SET ? = @Var
quot]

Уже на Parse script выдает ошибку
"Syntax error, permission violation, or other nonspecific error"
скорее всего ругается на последнюю строку
5 фев 09, 13:51    [6783148]     Ответить | Цитировать Сообщить модератору
 Re: SSIS изменение имени файла  [new]
kirser
Member

Откуда: Киев
Сообщений: 225
Bruin_Balu
можно так:

в Execute SQL Task во вкладке General в SQLStatement пишете

Declare @Var /тип/
SET @Var=/вычисляете нужное вам значение/
SET ? = @Var

во вкладке Parameter Mappings устанавливаете следующее: Variable Name - выбираете вашу переменную User::Var, Direction - Output, DataType - тип вашей переменной, Parameter Name - 0, Parameter Size - размер вашей переменой

Пусть меня поправят, если что не так...

к тому же, когда создаю строку в Parameter Mappings на самом элементе Execute SQL Task загорается еррор
5 фев 09, 14:02    [6783229]     Ответить | Цитировать Сообщить модератору
 Re: SSIS изменение имени файла  [new]
Bruin_Balu
Member

Откуда:
Сообщений: 112
странно... например такое у меня работает:

declare @var int
set @var=1
set ?=@var

вы какой конктретно SQL Statement пишете?
5 фев 09, 14:02    [6783234]     Ответить | Цитировать Сообщить модератору
 Re: SSIS изменение имени файла  [new]
Bruin_Balu
Member

Откуда:
Сообщений: 112
какая конктретно ошибка? частно бывает что на несоответствие типов ругается...
5 фев 09, 14:05    [6783259]     Ответить | Цитировать Сообщить модератору
 Re: SSIS изменение имени файла  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
kirser
tpg
[quot kirser]Например, если вам надо получить текущую дату, а синтаксис вы не знаете, то открываете функции и перетаскиваете нужную функцию в поле построител и т.д.

Писал
(DT_NTEXT)Day(GetDate())+Month(GetDate())+Year(GetDate())+".tov"

выбивает ошибку
И сообщение звучит...
5 фев 09, 14:07    [6783275]     Ответить | Цитировать Сообщить модератору
 Re: SSIS изменение имени файла  [new]
kirser
Member

Откуда: Киев
Сообщений: 225
tpg
И сообщение звучит...

Cannot cast expression "(DT_NTEXT)(DAY(GETDATE()))" from date type "DT_I4" to data type "DT_NTEXT". The requested cast is not supported
5 фев 09, 14:44    [6783551]     Ответить | Цитировать Сообщить модератору
 Re: SSIS изменение имени файла  [new]
kirser
Member

Откуда: Киев
Сообщений: 225
Bruin_Balu
странно... например такое у меня работает:

declare @var int
set @var=1
set ?=@var

вы какой конктретно SQL Statement пишете?


Declare @Var varchar(12)
set @Var=Cast(Year(GetDate()) as Varchar(12))
set ?=@var
5 фев 09, 14:46    [6783575]     Ответить | Цитировать Сообщить модератору
 Re: SSIS изменение имени файла  [new]
Bruin_Balu
Member

Откуда:
Сообщений: 112
kirser,

у меня все работает!

итак,
вкладка General:
1) вы установили Connection к какой-то базе (test connection был successful)
2) в SQL Statement вы записали
Declare @Var varchar(12)
set @Var=Cast(Year(GetDate()) as Varchar(12))
set ?=@var

в закладке Parameter Mappings установили: Variable Name - User::Var, Direction - Output, DataType -Varchar, Parameter Name - 0, Parameter Size - 50.

Все верно? какие сообщения об ошибке вы при этом получаете?
5 фев 09, 15:03    [6783727]     Ответить | Цитировать Сообщить модератору
 Re: SSIS изменение имени файла  [new]
kirser
Member

Откуда: Киев
Сообщений: 225
Bruin_Balu

Все верно? какие сообщения об ошибке вы при этом получаете?


Все верно. Parse query выдает "The query failed to parse. Syntax error, permission violation, or nonsoecefic error".
5 фев 09, 15:14    [6783807]     Ответить | Цитировать Сообщить модератору
 Re: SSIS изменение имени файла  [new]
Bruin_Balu
Member

Откуда:
Сообщений: 112
kirser,

в закладке Ganeral, в BypassPrepare установлено значение True?
5 фев 09, 15:17    [6783831]     Ответить | Цитировать Сообщить модератору
 Re: SSIS изменение имени файла  [new]
kirser
Member

Откуда: Киев
Сообщений: 225
Bruin_Balu
kirser,

в закладке Ganeral, в BypassPrepare установлено значение True?

False, иначе парс не пройдет
5 фев 09, 15:18    [6783841]     Ответить | Цитировать Сообщить модератору
 Re: SSIS изменение имени файла  [new]
Bruin_Balu
Member

Откуда:
Сообщений: 112
kirser,

в BypassPrepare установите True и запускайте таск!
5 фев 09, 15:22    [6783869]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить