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

Откуда: Украина г. Хмельницкий
Сообщений: 628
Есть переменная:
@dst nvarchar(500)
set @dst = 'D:\SQL_ARCHIV_NETFIRE\GGLite\rar' + chr(13) + chr(10) +
'\\nas\sql_archiv_netfire\GGLite'
нужно сделать цикл, на каждом шаге которого получать значение этой переменной учитывая разделитель chr(13) + chr(10). Подскажите пожалуйста, как это можно реализовать?
30 май 11, 16:54    [10733478]     Ответить | Цитировать Сообщить модератору
 Re: Переменная с разделителями - цикл  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
shanton, зачем циклы? Приджойнить к таблице чисел и разпарсить. Либо собрать XML и разобрать в таблицу.
30 май 11, 17:01    [10733564]     Ответить | Цитировать Сообщить модератору
 Re: Переменная с разделителями - цикл  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
kDnZP, вот как пример:
DECLARE @tmp NVARCHAR(255)
SELECT  @tmp = '123' + CHAR(13) + CHAR(10) + '456'

SELECT * FROM (
SELECT  CAST('<r><c>' + REPLACE(t.a, CHAR(13) + CHAR(10), '</c><c>') + '</c></r>' AS XML) s
FROM    ( SELECT    @tmp a
        ) t
) t
CROSS APPLY ( SELECT    x.z.value('.', 'nvarchar(255)') sp
              FROM      s.nodes('/r/c') x ( z )
            ) t1
30 май 11, 17:11    [10733649]     Ответить | Цитировать Сообщить модератору
 Re: Переменная с разделителями - цикл  [new]
shanton
Member

Откуда: Украина г. Хмельницкий
Сообщений: 628
kDnZP
kDnZP, вот как пример:
DECLARE @tmp NVARCHAR(255)
SELECT  @tmp = '123' + CHAR(13) + CHAR(10) + '456'

SELECT * FROM (
SELECT  CAST('<r><c>' + REPLACE(t.a, CHAR(13) + CHAR(10), '</c><c>') + '</c></r>' AS XML) s
FROM    ( SELECT    @tmp a
        ) t
) t
CROSS APPLY ( SELECT    x.z.value('.', 'nvarchar(255)') sp
              FROM      s.nodes('/r/c') x ( z )
            ) t1

неработает этот код:
Msg 170, Level 15, State 1, Line 9
Line 9: Incorrect syntax near 'APPLY'.
Msg 170, Level 15, State 1, Line 10
Line 10: Incorrect syntax near '('.
с XML раньше никогда неработал, пока непонятно как оно работает.
30 май 11, 17:39    [10733891]     Ответить | Цитировать Сообщить модератору
 Re: Переменная с разделителями - цикл  [new]
Glory
Member

Откуда:
Сообщений: 104751
shanton
с XML раньше никогда неработал, пока непонятно как оно работает.

Начнем с того, что это работает с SQL2005
30 май 11, 17:40    [10733910]     Ответить | Цитировать Сообщить модератору
 Re: Переменная с разделителями - цикл  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
shanton
kDnZP
kDnZP, вот как пример:
DECLARE @tmp NVARCHAR(255)
SELECT  @tmp = '123' + CHAR(13) + CHAR(10) + '456'

SELECT * FROM (
SELECT  CAST('<r><c>' + REPLACE(t.a, CHAR(13) + CHAR(10), '</c><c>') + '</c></r>' AS XML) s
FROM    ( SELECT    @tmp a
        ) t
) t
CROSS APPLY ( SELECT    x.z.value('.', 'nvarchar(255)') sp
              FROM      s.nodes('/r/c') x ( z )
            ) t1

неработает этот код:
Msg 170, Level 15, State 1, Line 9
Line 9: Incorrect syntax near 'APPLY'.
Msg 170, Level 15, State 1, Line 10
Line 10: Incorrect syntax near '('.
с XML раньше никогда неработал, пока непонятно как оно работает.
Что-то мне кажется, что в выделенной строке чего-то не хватает...
Ну не может быть SELECT <таблица> <алиас>
30 май 11, 17:42    [10733923]     Ответить | Цитировать Сообщить модератору
 Re: Переменная с разделителями - цикл  [new]
boltnik
Member

Откуда: Калуга/Москва
Сообщений: 144
iap,

Да может, может
 SELECT 1 a
30 май 11, 18:44    [10734332]     Ответить | Цитировать Сообщить модератору
 Re: Переменная с разделителями - цикл  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
У iap видимо день не задался.
А вообще привыкаешь к нормальному коду (AS), и в месиве букв всё мерещится.
Частенько код предварительно перед чтением форматирую.
30 май 11, 19:02    [10734441]     Ответить | Цитировать Сообщить модератору
 Re: Переменная с разделителями - цикл  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Иногда удобнее даже так
(SELECT @tmp, ..., ...) t(a,b,c)
Часто для APPLY нужно.

А по сабжу: нифига не врубаюсь.
30 май 11, 19:07    [10734454]     Ответить | Цитировать Сообщить модератору
 Re: Переменная с разделителями - цикл  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Mnior
У iap видимо день не задался.
Ой! И правда!
Посыпаю голову пеплом...
30 май 11, 20:35    [10734880]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить