powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Проблемы с преобразованием данных text -> varchar
5 сообщений из 5, страница 1 из 1
Проблемы с преобразованием данных text -> varchar
    #32054027
Pavel kovalenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
Есть база (sql2000).
В таблице documents находиться поле doc_index.В этом поле лежит оглавление документа.
Нам понадобилось впихнуть это поле в varchar. т.е. 8060 символов из text.
Написал я скрипт (vbs), который бежит по таблице и обрезает doc_index до 8000 символов.
Все нормально урезалось.
Попытался сменить тип данных - говорит что не может преобразовать строку из 9056 символов в 8060...
Я урезал до 5000 символов...
Говорит что не может преобразовать 10456 -> 8060
Короче, преобразовалось только когда я урезал doc_index до 2000 символов...

Объясните пожалуйста, что это значит и как с этим бороться?
Заранее спасибо!
...
Рейтинг: 0 / 0
Проблемы с преобразованием данных text -> varchar
    #32054045
Breakneck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как конвертируете? Текст запроса, плз
...
Рейтинг: 0 / 0
Проблемы с преобразованием данных text -> varchar
    #32054047
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что других полей в таблице нет ?
Может быть 2000 байтов это как раз то, что осталось на долю нового поля от максимального размера записи.
...
Рейтинг: 0 / 0
Проблемы с преобразованием данных text -> varchar
    #32054052
Pavel kovalenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
to Breakneck
Делаю просто сначала селект,а потом в цикле update:

Код: plaintext
1.
2.
3.
4.
5.
6.
sqlstr =  "select doc_index, doc_id from documents" 
Set sqlresult=conn.Execute(sqlstr)

do while not sqlresult.EOF
  sqlstr =  "UPDATE documents SET doc_index='" & left(trim(sqlresult("doc_index")), 8000) & "' WHERE doc_id="  & sqlresult( "doc_id" )
  sqlresult.MoveNext
loop


to Glory
Есть конечно...
...
Рейтинг: 0 / 0
Проблемы с преобразованием данных text -> varchar
    #32054063
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда
Код: plaintext
1.
2.
3.
select  8060 -sum(isnull(case when a.data_type IN('text', 'ntext', 'image') THEN NULL ELSE a.CHARACTER_MAXIMUM_LENGTH END, b.length))
from INFORMATION_SCHEMA.COLUMNS a 
inner join systypes b on b.name = a.data_type
where a.table_name = 'documents' and a.column_name <> 'doc_index'

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


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