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

Откуда:
Сообщений: 116
Задача следующая: Есть таблица с полями _Description NVARCHAR(100), _FLD2 NVARCHAR(100). Необходимо удалить все символы-разделители в строках поля _Description и новую строку(уже без символов разделителей) вставить в _FLD2.
Понятно, что это нужно делать только в цикле, так как обрабатывать нужно поле каждой строки. Вот мой алгоритм:
CREATE PROCEDURE FILLNAMES
BEGIN 
declare I INT DEFAULT 1;
declare str2 NVARCHAR(100);
declare CountOfRecords INT DEFAULT (SELECT COUNT(_CODE) FROM [TEST2].[DBO].[_REFERENCE32]);
WHILE I<CountOfRecords 
	IF ([_REFERENCE32].[_DESCRIPTION] IS NOT NULL) AND (RTRIM(LTRIM([_REFERENCE32].[_DESCRIPTION]))<>'') THEN 
	set str2 = REPLACE([_REFERENCE32].[_DESCRIPTION], '-', '');
	set str2=REPLACE(STR2, '(', '');
	set str2=REPLACE(STR2, ')', '');
	set str2=REPLACE(STR2, ' ', '');	
	UPDATE [_REFERENCE32] SET [_Fld9339] =str2 ;
	END IF;
	SET I=I+1;
END WHILE;
END

Ошибки:
Сообщение 156, уровень 15, состояние 1, процедура FILLNAMES, строка 2
Неправильный синтаксис около ключевого слова "BEGIN".
Сообщение 155, уровень 15, состояние 2, процедура FILLNAMES, строка 3
INT не является известным параметром CURSOR.
Сообщение 155, уровень 15, состояние 2, процедура FILLNAMES, строка 4
NVARCHAR не является известным параметром CURSOR.
Сообщение 155, уровень 15, состояние 2, процедура FILLNAMES, строка 5
INT не является известным параметром CURSOR.
Сообщение 156, уровень 15, состояние 1, процедура FILLNAMES, строка 7
Неправильный синтаксис около ключевого слова "THEN".
Сообщение 102, уровень 15, состояние 1, процедура FILLNAMES, строка 13
Неправильный синтаксис около конструкции ";".
Сервер MS SQL Server 2008 R2
11 мар 13, 14:06    [14035294]     Ответить | Цитировать Сообщить модератору
 Re: Алгоритм написал, нужна помощь с синтаксисом по T-SQL  [new]
Glory
Member

Откуда:
Сообщений: 104751
UPDATE [_REFERENCE32] SET [_DESCRIPTION] =REPLACE(REPLACE(REPLACE([_DESCRIPTION], ' ', ''), ')', ''), '(', '');
UPDATE [_REFERENCE32] SET [_Fld9339] =  [_DESCRIPTION] ;
11 мар 13, 14:10    [14035324]     Ответить | Цитировать Сообщить модератору
 Re: Алгоритм написал, нужна помощь с синтаксисом по T-SQL  [new]
iap
Member

Откуда: Москва
Сообщений: 47145
okwell5
Понятно, что это нужно делать только в цикле
Кому понятно?
убрать лишние знаки в столбце
11 мар 13, 14:27    [14035484]     Ответить | Цитировать Сообщить модератору
 Re: Алгоритм написал, нужна помощь с синтаксисом по T-SQL  [new]
okwell5
Member

Откуда:
Сообщений: 116
Glory
UPDATE [_REFERENCE32] SET [_DESCRIPTION] =REPLACE(REPLACE(REPLACE([_DESCRIPTION], ' ', ''), ')', ''), '(', '');
UPDATE [_REFERENCE32] SET [_Fld9339] =  [_DESCRIPTION] ;

Сработало! Спасибо!
11 мар 13, 14:50    [14035698]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить