Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> MS SQL.Замена части строки, Для поля типе TEXT 
:(
    Опции темы
ИгнатьевАлексей
Дата 23.9.2016, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 369
Регистрация: 18.11.2005

Репутация: нет
Всего: 3



Дорогие друзья, прошу помощи!

Искал сам, но ничего не получается.

БД у меня вот такая:
Microsoft SQL Server Management Studio                        10.50.1600.1

Есть таблица. Одно поле типа text, например вот такого содержания:

{"CPName":"200","EngUnitName":"qqqq","OrgUnitCode":"ОАО \"Новойл\"","TestName":"asx"}

Нужно просто заменить внутри одну часть строки на другую.
Пробую, как советуют везде команду:

Код

UPDATE [ipk].[dbo].[parameter]
SET [additional_settings] = REPLACE (additional_settings, 'Новойл', 'Новойл-2')


Но ругается так:
Argument data type text is invalid for argument 1 of replace function.

Подскажите, как быть, пожалуйста!


Это сообщение отредактировал(а) ИгнатьевАлексей - 23.9.2016, 14:15


--------------------
Vingrad - FOREVER !!! 

"Как вы яхту назовете - так она и поплывет!" 
 Капитан Врунгель 
PM MAIL   Вверх
Akina
Дата 23.9.2016, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 45
Всего: 453



Цитата(ИгнатьевАлексей @  23.9.2016,  15:11 Найти цитируемый пост)
БД у меня вот такая:
Microsoft SQL Server Management Studio 

Это не БД, а программа для работы с сервером БД и данными на нём.
А вот версии сервера - не видать.

Цитата(ИгнатьевАлексей @  23.9.2016,  15:11 Найти цитируемый пост)
Есть таблица. Одно поле типа text

Точно TEXT? Не NText?

Цитата(ИгнатьевАлексей @  23.9.2016,  15:11 Найти цитируемый пост)
как быть

CAST()


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
ИгнатьевАлексей
Дата 23.9.2016, 15:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 369
Регистрация: 18.11.2005

Репутация: нет
Всего: 3



Akina,

Цитата

Точно TEXT? Не NText?


В свойствах поля вижу:
Data Type  text

Но обратите внимание, как составлена строка. Как массив.


Цитата

CAST()


Как я понял, это функция преобразования типов.
А можно чуть подробнее? Как применять. Не силен я в этом.


--------------------
Vingrad - FOREVER !!! 

"Как вы яхту назовете - так она и поплывет!" 
 Капитан Врунгель 
PM MAIL   Вверх
Akina
Дата 23.9.2016, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 45
Всего: 453



Цитата(ИгнатьевАлексей @  23.9.2016,  16:33 Найти цитируемый пост)
обратите внимание, как составлена строка. Как массив.

Серверу по барабану, как человек или программа интерпретируют значение поля. Для него это тупая строка.

Цитата(ИгнатьевАлексей @  23.9.2016,  16:33 Найти цитируемый пост)
А можно чуть подробнее? Как применять.

Ну попробуй тупо
Код

UPDATE [ipk].[dbo].[parameter]
SET [additional_settings] = REPLACE (CAST([additional_settings] AS VARCHAR), 'Новойл', 'Новойл-2')



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
ИгнатьевАлексей
Дата 23.9.2016, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 369
Регистрация: 18.11.2005

Репутация: нет
Всего: 3



К сожалению, не вышло.

Я попробовал именно такое выражение, как Вы написало.
Операция прошла, но результат не тот, что ожидали:

{"CPName":"Е-9 (ПВД-1)","EngUn

Вместо замены он как то непонятно обрезал большую часть строки.


--------------------
Vingrad - FOREVER !!! 

"Как вы яхту назовете - так она и поплывет!" 
 Капитан Врунгель 
PM MAIL   Вверх
Akina
Дата 23.9.2016, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20570
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 45
Всего: 453



Покажи для этой записи
Код

SELECT [additional_settings] a1
     , CAST([additional_settings] AS VARCHAR) a2
     , REPLACE (CAST([additional_settings] AS VARCHAR), 'Новойл', 'Новойл-2') a3
;






--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
ИгнатьевАлексей
Дата 24.9.2016, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 369
Регистрация: 18.11.2005

Репутация: нет
Всего: 3



Сделал для одной записи. В результате три столбца:

Первый:
{"CPName":"Е-209 (ПВД-2)","EngUnitName":"процент массовый","OrgUnitCode":"ОАО "Новойл"","TestName":"iC4 (изобутан)"}

Второй:
{"CPName":"Е-209 (ПВД-2)","Eng

Третий:
{"CPName":"Е-209 (ПВД-2)","Eng



--------------------
Vingrad - FOREVER !!! 

"Как вы яхту назовете - так она и поплывет!" 
 Капитан Врунгель 
PM MAIL   Вверх
ИгнатьевАлексей
Дата 28.9.2016, 13:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 369
Регистрация: 18.11.2005

Репутация: нет
Всего: 3



Первый раз за 15 лет мне на этом форуме не смогли помочь, к сожалению


--------------------
Vingrad - FOREVER !!! 

"Как вы яхту назовете - так она и поплывет!" 
 Капитан Врунгель 
PM MAIL   Вверх
Garmahis
Дата 29.9.2016, 09:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 254
Регистрация: 23.12.2004

Репутация: 1
Всего: 4



Код

SET additional_settings = CAST(REPLACE(CAST(additional_settings AS varchar(max)), 'Новойл', 'Новойл-2') AS Text)


Это сообщение отредактировал(а) Garmahis - 29.9.2016, 09:26
PM   Вверх
Starikan
Дата 30.9.2016, 01:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 25.10.2007

Репутация: нет
Всего: -15



задавай по двум таблицам сразу параметры и будет тебе выдываться инсерт сразу в колонку с шифтом
PM MAIL   Вверх
ИгнатьевАлексей
Дата 3.10.2016, 09:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 369
Регистрация: 18.11.2005

Репутация: нет
Всего: 3



Garmahis

Спасибо! Проверил через выборку. По-моему, работает.


--------------------
Vingrad - FOREVER !!! 

"Как вы яхту назовете - так она и поплывет!" 
 Капитан Врунгель 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Составление SQL-запросов | Следующая тема »


 




[ Время генерации скрипта: 0.1617 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.