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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Заменить бинарное поле в таблице на Unicode текст 
V
    Опции темы
DigitalDummy
  Дата 14.7.2008, 15:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 7.4.2006
Где: В подвале шоколад ной фабрики.

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



Здоровья вам, и разуменья, достопочтенный великий народ форума Винград! Поделитесь знаниями и мыслями, кто сколько сможет, по следующей задаче:

В таблице, кроме других, есть одно «бинарное» поле. В нем я храню текстовую строку в формате Unicode (UTF-16) в виде, соответственно, массива байт. В менеджере базы (SQL Server Management Studio Express), конечно же, при обзоре таблицы поле видно как <Binary data>. А хочется, чтобы оно отображалось там как текст (а то не удобно искать). Что можно сделать, чтобы осуществить данную мечту при условии, что кодировка должна быть Unicode?

Я мало разбираюсь в настройках БД вообще, и в кодировках в частности. Горячо приму к сердцу любые советы, ссылки или общие описания, как вообще с вопросом кодировок обстоят дела в БД и как это все «внутри» работает. Вопрос только о базе «Microsoft SQL Server».

Большое спасибо за любую помощь.
PM WWW   Вверх
DigitalDummy
  Дата 5.10.2008, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 43
Регистрация: 7.4.2006
Где: В подвале шоколад ной фабрики.

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



Прошли годы... И я узнал как можно было всё сделать.

Во-первых, чтобы хранить данные в Unicode UTF-16 можно было изначально поставить этому полю тип nvarchar или nchar. Этого я не знал, так как начал работать с БД первые несколько дней.

Во-вторых, отвечу на свой вопрос: бинарное поле в таблице (тип varbinary или binary) можно представить другим нужным мне типом данных ввиде SQL запроса (используя функцию CAST):
Код

-- Column это нужное поле БД.
-- Table это, соответственно, таблица.
SELECT CAST(Column AS nvarchar) FROM Table

Но при этом есть замечание: полученное поле не будет иметь идентификатора. Чтобы обратиться к "изменённому" полю, представленному как другой тип данных, но так, как-будто оно тоже самое, нужно указать для него имя (используя оператор AS):
Код

SELECT CAST(Column AS nvarchar) AS Column FROM Table


Всем спасибо.
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS SQL"
Akina

Akina

Запрещается!

Публиковать ссылки и обсуждать взлом чего бы то ни было.

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы составления неспецифических запросов рассматриваются здесь
  • Используйте теги [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, Akina.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS SQL Server | Следующая тема »


 




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


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

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