Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
red_ifrit0 Member Откуда: Сообщений: 21 |
Подскажите как это лучше реализовать, может вообще не тот инструмент использую. Есть файл с логом программы, в которую пишутся все события фрагмент
реально из всего этого счастья меня интересует только событие NEW_PICK_LIST: - структура у этого события фиксированная хотелось бы дергать это событие в базу используя ssisю Это возможно? Лучше через построчное чтение и регулярки? |
|
8 июл 13, 13:21 [14535491] Ответить | Цитировать Сообщить модератору |
Jovanny Member Откуда: Сообщений: 1196 |
Ещё можно OPENROWSET bcp |
8 июл 13, 14:09 [14535912] Ответить | Цитировать Сообщить модератору |
Ivan Durak Member Откуда: Minsk!!! Сообщений: 3646 |
какие еще регулярки. В ссис есть мощная штука называемая - Script task. С ее помощью такое распарсить будет эффективнее всего! |
||
8 июл 13, 15:01 [14536364] Ответить | Цитировать Сообщить модератору |
Jovanny Member Откуда: Сообщений: 1196 |
Зачем такие сложности, если там плоский текстовый файл с разделителями? |
||||
8 июл 13, 15:05 [14536384] Ответить | Цитировать Сообщить модератору |
Ivan Durak Member Откуда: Minsk!!! Сообщений: 3646 |
это не сложности - это Best Practice. Ну и что-то разделителей не вижу, и вообще число полей переменное |
||||
8 июл 13, 15:25 [14536565] Ответить | Цитировать Сообщить модератору |
red_ifrit0 Member Откуда: Сообщений: 21 |
В том и дело, что число полей переменное, заголовков полей нет(ну кроме моего события - там знаю). Не понимаю как можно обработать, выбирая только строки по фильтру
Пока не применял, это "Поток данный"- "Задача сценарий" -? |
||||
8 июл 13, 16:08 [14536974] Ответить | Цитировать Сообщить модератору |
red_ifrit0 Member Откуда: Сообщений: 21 |
Поток управления - задача сценарий -пишу сценарий на с # Как-то так ? |
8 июл 13, 16:17 [14537050] Ответить | Цитировать Сообщить модератору |
Ivan Durak Member Откуда: Minsk!!! Сообщений: 3646 |
да это оно (русская студия зло)
ну так тут вообще без вариантов, всякие bcp курят в сторонке |
||||
8 июл 13, 16:45 [14537291] Ответить | Цитировать Сообщить модератору |
red_ifrit0 Member Откуда: Сообщений: 21 |
Что есть то и мучаю. :) Если есть примеры с обработкой файла через сценарий, буду рад ссылке. Спс. |
8 июл 13, 16:50 [14537330] Ответить | Цитировать Сообщить модератору |
qwerty112
Guest |
а какой результат вы, вообще, хотите получить ? строка файла с этим NEW_PICK_LIST - как должна "распарсится" и "лечь" в таблицу ? просто выбрать эти строки из файла - можно и обычным BULK INSERT, - что с этим всем дальше нужно сделать ? create table #Haba (xz varchar(max)) go BULK INSERT #Haba FROM 'C:\log.log' WITH ( CODEPAGE = 'ACP', fieldterminator='/n' ) select * from #Haba where xz like '%NEW_PICK_LIST%' go drop table #Haba go (17 row(s) affected) xz ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 2013-06-22T14:32:12.243 887331072: NEW_PICK_LIST: Создан пик-лист: 45722627 пик-деталь: 49619598 причина: [suppressing] [rcn] [205012] выдача: [R] статус: [O] приоритет: 90 из ячейки: 3649 в ячейку: 4664708 транзитная группа: 0 операция: CTN_FROM_CNT (1 row(s) affected) |
||
8 июл 13, 17:49 [14537711] Ответить | Цитировать Сообщить модератору |
red_ifrit0 Member Откуда: Сообщений: 21 |
qwerty112, от события мне нужна дата -2013-06-22 номер пик-лист: 45722627 статус: [O] |
9 июл 13, 07:29 [14539065] Ответить | Цитировать Сообщить модератору |
qwerty112
Guest |
нуу, так, например create table #Haba (xz varchar(max)) go BULK INSERT #Haba FROM 'C:\log.log' WITH ( CODEPAGE = 'ACP' ) ;with cte as ( select row_number() over(order by xz) as id, cast('<row><a>'+replace(xz , ' ', '</a><a>')+'</a></row>' as xml) as xz from #Haba where xz like '%NEW_PICK_LIST%') select cte.id , a.xz1, a.xz2, a.xz3 from cte cross apply ( select t.c.value('a[1]/text()[1]', 'datetime') as xz1, t.c.value('a[6]/text()[1]', 'varchar(10)') as xz2, t.c.value('a[16]/text()[1]', 'varchar(10)') as xz3 from cte.xz.nodes('/row') as t(c) ) a go drop table #Haba go (17 row(s) affected) id xz1 xz2 xz3 -------------------- ----------------------- ---------- ---------- 1 2013-06-22 14:32:12.243 45722627 [O] (1 row(s) affected) |
||
9 июл 13, 10:27 [14539646] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |