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

Откуда:
Сообщений: 27
Доброго времени суток. Имею таблицу с полями
ID int,
FirstName nvarchar(50),
Phone varchar(50),
Email varbinary(50)


Имею процедуру где хочу обновить таблицу :

@id int,
@Phone varchar(50),
@Email varchar(50)

UPDATE myProcedure
SET [Phone] = @Phone,
      [Email] = @Email
WHERE [ID] = @ID 


Как сделать конвертацию [Email] в varchar . Пробовал сам
UPDATE myProcedure
SET [Phone] = @Phone,
      CONVERT(varchar,[Email],2) = @Email
WHERE [ID] = @ID 


Но выдает ошибку.
17 июн 13, 14:49    [14442436]     Ответить | Цитировать Сообщить модератору
 Re: Конвертация varbinary в varchar  [new]
Glory
Member

Откуда:
Сообщений: 104751
SDAG
Но выдает ошибку.

И ее надо угадать ?

CONVERT(varchar,[Email],2) = @Email - это что за синтаксис вы придумали ? Апдейтить вычисляемое выражение из переменной ?
17 июн 13, 14:54    [14442475]     Ответить | Цитировать Сообщить модератору
 Re: Конвертация varbinary в varchar  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
UPDATE myProcedure
SET [Phone] = @Phone,
    [Email] = CONVERT( varbinary, @Email, 1 )
WHERE [ID] = @ID 
17 июн 13, 14:54    [14442476]     Ответить | Цитировать Сообщить модератору
 Re: Конвертация varbinary в varchar  [new]
Shakill
Member

Откуда: мск
Сообщений: 1887
SDAG
Как сделать конвертацию [Email] в varchar . Пробовал сам

а зачем вам нужна конвертация в varchar во время обновления поля с типом varbinary(50)?
17 июн 13, 14:55    [14442486]     Ответить | Цитировать Сообщить модератору
 Re: Конвертация varbinary в varchar  [new]
SDAG
Member

Откуда:
Сообщений: 27
Knyazev Alexey
UPDATE myProcedure
SET [Phone] = @Phone,
    [Email] = CONVERT( varbinary, @Email, 1 )
WHERE [ID] = @ID 


Выдает ошибку : Error converting data type varchar to varbinary.

Shakill
а зачем вам нужна конвертация в varchar во время обновления поля с типом varbinary(50)?


Из-за юникода . Nvarchar не устраивает
17 июн 13, 15:01    [14442529]     Ответить | Цитировать Сообщить модератору
 Re: Конвертация varbinary в varchar  [new]
SDAG
Member

Откуда:
Сообщений: 27
[quot SDAG]
Glory
Выдает ошибку : Error converting data type varchar to varbinary.


SDAG
Knyazev Alexey
UPDATE myProcedure
SET [Phone] = @Phone,
    [Email] = CONVERT( varbinary, @Email, 1 )
WHERE [ID] = @ID 


Выдает ошибку : Error converting data type varchar to varbinary.

Shakill
а зачем вам нужна конвертация в varchar во время обновления поля с типом varbinary(50)?


Из-за юникода . Nvarchar не устраивает
17 июн 13, 15:06    [14442564]     Ответить | Цитировать Сообщить модератору
 Re: Конвертация varbinary в varchar  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
SDAG
Knyazev Alexey
UPDATE myProcedure
SET [Phone] = @Phone,
    [Email] = CONVERT( varbinary, @Email, 1 )
WHERE [ID] = @ID 



Выдает ошибку : Error converting data type varchar to varbinary.

Shakill
а зачем вам нужна конвертация в varchar во время обновления поля с типом varbinary(50)?


Из-за юникода . Nvarchar не устраивает


ну если у вас на входе именно строка, то просто:

UPDATE myProcedure
SET [Phone] = @Phone,
    [Email] = CONVERT( varbinary, @Email )
WHERE [ID] = @ID 
17 июн 13, 15:07    [14442581]     Ответить | Цитировать Сообщить модератору
 Re: Конвертация varbinary в varchar  [new]
SDAG
Member

Откуда:
Сообщений: 27
Knyazev Alexey,Заработало, огромное спасибо.
Ввожу данные вот так :

exec procedure 1,'777','testing@mytest.ru'
17 июн 13, 15:10    [14442599]     Ответить | Цитировать Сообщить модератору
 Re: Конвертация varbinary в varchar  [new]
Shakill
Member

Откуда: мск
Сообщений: 1887
SDAG
Knyazev Alexey
UPDATE myProcedure
SET [Phone] = @Phone,
    [Email] = CONVERT( varbinary, @Email, 1 )
WHERE [ID] = @ID 


Выдает ошибку : Error converting data type varchar to varbinary.

Shakill
а зачем вам нужна конвертация в varchar во время обновления поля с типом varbinary(50)?


Из-за юникода . Nvarchar не устраивает

так если у процедуры входной параметр типа varchar, то здесь уже нет нигде юникода. дальше уже явно в varbinary(50), как вам уже написали
17 июн 13, 15:12    [14442613]     Ответить | Цитировать Сообщить модератору
 Re: Конвертация varbinary в varchar  [new]
SomewhereSomehow
Member

Откуда: Moscow
Сообщений: 2480
Блог
SDAG,
declare @email_b varbinary(50), @email_v varchar(50);
select @email_b = 0x7465737440746573742E7275, @email_v = 'test@test.ru';

select 
	convert(varbinary,@email_v), 
	convert(varchar,@email_b),
	convert(varchar,@email_b,1)+'какая-то строка';--а вот если нужно со значением binary работать как со строкой тогда
17 июн 13, 15:13    [14442625]     Ответить | Цитировать Сообщить модератору
 Re: Конвертация varbinary в varchar  [new]
SDAG
Member

Откуда:
Сообщений: 27
SomewhereSomehow, мне главное в varbinary записать (уже получилось) , дальше все будет решать язык функционального программирования
17 июн 13, 15:19    [14442679]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить