Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Конкатенация значений text / 8 сообщений из 8, страница 1 из 1
18.10.2002, 15:25:08
    #32059760
yura_silver
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конкатенация значений text
Кто может подсказать - сабж вообще возможен средствами T-SQL?

Или есть другое решение?

Т.е. мне надо пройтись по таблице, содержащей поля text, и получить объединенное значение.

Но код
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
CREATE PROCEDURE [dbo].[ConcText]
(
  @SqlStr text = '' output 
)
AS
SELECT @SqlStr = @SqlStr + TextField
FROM
  SomeTable
  
GO


не работает :(
...
Рейтинг: 0 / 0
18.10.2002, 15:38:25
    #32059782
Lexis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конкатенация значений text
работайте через readtext, updatetext
...
Рейтинг: 0 / 0
18.10.2002, 15:41:16
    #32059784
jimmers
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конкатенация значений text
Можно через вспомогательную таблицу... В нее скидывать все через WRITETEXT, потом READTEXT из нее...

Удачи
...
Рейтинг: 0 / 0
18.10.2002, 16:41:51
    #32059842
yura_silver
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конкатенация значений text
А как быть со значением size для READTEXT?
Если указываю 0, читает 1-е 4 кб.
А если указываю конкретное значение, выдает ошибку
Код: plaintext
1.
Server: Msg  7124 , Level  16 , State  1 , Procedure AppendText, Line  20 
The offset and length specified in the READTEXT statement is greater than the actual data length of  1 .

если значение в поле меньше, чем задаваемая длина...
...
Рейтинг: 0 / 0
18.10.2002, 16:44:54
    #32059845
vap
vap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конкатенация значений text
Это делается через курсор.

DECLARE mCursor CURSOR FOR SELECT SqlStr FROM SomeTable
WHERE
OPEN mCursor

WHILE 1=1 BEGIN
FETCH NEXT FROM mCursor INTO @SqlStr1
IF @@FETCH_STATUS <> 0 BREAK
SET@SqlStr = @SqlStr + TextField
END
CLOSE mCursor
DEALLOCATE mCursor
...
Рейтинг: 0 / 0
18.10.2002, 17:46:15
    #32059878
yura_silver
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конкатенация значений text
2 vap:
Выбрать из курсора в параметр типа text, ntext или image нельзя . Увы...

То, к чему я пришел пока что:
В курсоре выбираю TextPtr и длину текста, затем читаю его с помощью READTEXT...

Кто-нибудь подскажет, как правильно использовать readtext?
...
Рейтинг: 0 / 0
18.10.2002, 17:48:59
    #32059879
Lexis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конкатенация значений text
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
 -- READTEXT with a protected text pointer
 
BEGIN TRAN
DECLARE @mytextptr varbinary( 16 ), @sizeneeded int, @pat_offset int
SELECT @mytextptr=TEXTPTR(pr_info), 
    @pat_offset=PATINDEX('%Washington%',pr_info) -  1 ,
    @sizeneeded=DATALENGTH(pr_info) - 
        (PATINDEX('%Washington%',pr_info) -  1 )
    FROM pub_info (HOLDLOCK) WHERE pub_id='0877' 

IF @mytextptr IS NOT NULL AND @pat_offset >=  0  AND
    @sizeneeded IS NOT NULL
    READTEXT  pub_info.pr_info @mytextptr @pat_offset @sizeneeded

COMMIT TRAN

...
Рейтинг: 0 / 0
18.10.2002, 18:06:21
    #32059889
yura_silver
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Конкатенация значений text
Да... почитав другие посты на форуме, понял всю бесперспективность подобного подхода...

Видимо, лучше и проще сцеплять строки на клиенте...
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Конкатенация значений text / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]