Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.databases.ms-sqlserver > #1775

Re: Varbinary and nvarchar problem

From Shelly <sheldonlg@thevillages.net>
Newsgroups comp.databases.ms-sqlserver
Subject Re: Varbinary and nvarchar problem
Date 2014-06-23 10:27 -0400
Organization A noiseless patient Spider
Message-ID <lo9dg7$8bf$1@dont-email.me> (permalink)
References <lnvbvt$ck3$1@dont-email.me> <XnsA351EB263B565Yazorman@127.0.0.1> <lnvlt4$nnk$1@dont-email.me> <XnsA352A57E3723Yazorman@127.0.0.1> <lo9b9q$p9g$1@dont-email.me>

Show all headers | View raw


On 6/23/2014 9:49 AM, Shelly wrote:
> On 6/20/2014 10:16 AM, Erland Sommarskog wrote:
>> Shelly (sheldonlg@thevillages.net) writes:
>>> Anyway, I have the solution.  It is to enclose the HASHBYTES stuff with
>>> the following:
>>>
>>> SUBSTRING(master.dbo.fn_varbintohexstr(  hashbytes calculation ), 3,
>>> 32).
>>>
>>> The result is a 32 character hex string put into the tracking table.
>>>
>>
>> If you are on SQL 2008, use
>>
>>    convert(varchar(32), hashbytes, 2)
>>
>> instead, as this is a documented and supported way to get a hex string.
>
> It didn't work.  I got something like:
>
> Msg 245, Level 16, State 1, Line 1
> Conversion failed when converting the varchar value
> '04B2D57D287ADE502C621C3534C574' to data type int.
>

It gets even more crazy.

I have a query that works. One field is in the query is:

HASHBYTES('MD5', table1.field1 + table1.field2 + table1.field3) as OUT_NAME

this gave a wierd looking string. I want to have this be a 32 bit hex 
string so I tried surrounding the hashbyte calculation with

CONVERT(VARCHAR(32), THE-HASHBYTE-STUFF, 2) AS OUT_NAME.

I also tried (this one worked elsewhere in the query)

SUBSTRING(master.dbo.fn_varbintohexstr(THE-HASHBYTE-STUFF), 3, 32) AS 
OUT_NAME

Both of those gave errors in converting a varchar to an int.

I also tried converting each piece int the HASHBYTES to a varchar or to 
an nvarchar and still got errors in the pieces -- even though the one 
without any conversions -- the plain HASHBYTES -- worked. I also tried 
CAST, but still had those errors.

Why does

CONVERT(VARCHAR(32), something-that-works, 2)

fail -- and with a conversion to int?

-- 
Shelly

Back to comp.databases.ms-sqlserver | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Varbinary and nvarchar problem Shelly <sheldonlg@thevillages.net> - 2014-06-19 15:00 -0400
  Re: Varbinary and nvarchar problem Erland Sommarskog <esquel@sommarskog.se> - 2014-06-19 23:06 +0200
    Re: Varbinary and nvarchar problem Shelly <sheldonlg@thevillages.net> - 2014-06-19 17:49 -0400
      Re: Varbinary and nvarchar problem Erland Sommarskog <esquel@sommarskog.se> - 2014-06-20 16:16 +0200
        Re: Varbinary and nvarchar problem Shelly <sheldonlg@thevillages.net> - 2014-06-21 09:17 -0400
        Re: Varbinary and nvarchar problem Shelly <sheldonlg@thevillages.net> - 2014-06-23 09:49 -0400
          Re: Varbinary and nvarchar problem Shelly <sheldonlg@thevillages.net> - 2014-06-23 10:27 -0400
            Re: Varbinary and nvarchar problem Erland Sommarskog <esquel@sommarskog.se> - 2014-06-23 21:33 +0200
              Re: Varbinary and nvarchar problem Shelly <sheldonlg@thevillages.net> - 2014-06-23 16:35 -0400
                Re: Varbinary and nvarchar problem Erland Sommarskog <esquel@sommarskog.se> - 2014-06-24 07:19 +0000

csiph-web