복붙노트

[SQL] SQL에서 HEX에 문자열 변환

SQL

SQL에서 HEX에 문자열 변환

내가 SQL에 그것의 16 진수 값으로 진짜 문자열을 변환하는 방법을 찾고 있어요. 내가 인포믹스하기 쉬운 무언가를 찾고 있어요하지만 난 분명히 뭔가 선호하는 데이터베이스를 중립

여기에 내가 지금 사용하고 선택입니다 :

SELECT SomeStringColumn from SomeTable

여기 내가 사용하고자하는 선택입니다 :     SomeTable에서 SELECT 진수 (SomeStringColumn)

불행히도 아무것도 간단이 없습니다 ... 인포믹스는 나에게 그 메시지를 제공합니다 : 숫자 변환 오류 문자

어떤 생각?

해결법

  1. ==============================

    1.당신은 캐스트와 fn_varbintohexstr를 사용할 수 있습니까?

    당신은 캐스트와 fn_varbintohexstr를 사용할 수 있습니까?

    SELECT master.dbo.fn_varbintohexstr(CAST(SomeStringColumn AS varbinary)) 
    FROM SomeTable
    

    당신이 당신의 데이터베이스 시스템에이 기능이있는 경우 잘 모르겠어요, 그것은 MS-SQL에 있습니다.

    난 그냥 내 테이블 중 하나에 내 SQL 서버 MMC에서 그것을 시도 :

    SELECT     master.dbo.fn_varbintohexstr(CAST(Addr1 AS VARBINARY)) AS Expr1
    FROM         Customer
    

    예상대로이 일했다. 아마도 제가 MS-SQL에 master.dbo.fn_varbintohexstr로 알고, 시도 그래서 아마도 진수 () 함수를 인포믹스 유사 수 있습니다 :

    SELECT     hex(CAST(Addr1 AS VARBINARY)) AS Expr1
    FROM         Customer
    
  2. ==============================

    2.다음은 SQL 2005에서 작동합니다.

    다음은 SQL 2005에서 작동합니다.

    select convert(varbinary, SomeStringColumn) from SomeTable
    
  3. ==============================

    3.당신이 코드에서 데이터베이스 클라이언트에서이 작업을 수행하는 것이 가능하다면 그것은 쉬울 수 있습니다.

    당신이 코드에서 데이터베이스 클라이언트에서이 작업을 수행하는 것이 가능하다면 그것은 쉬울 수 있습니다.

    그렇지 않으면 오류가 아마 당신의 값없는 일 당신이 기대할 수있는 육각 기능이 내장 된 것을 의미한다. 나는 두 번 입력 값이 정돈되어 있는지 확인 것 먼저 형식으로, 그 간단 할 수 있습니다. 그럼 난 육각 기능을 설명 데이터베이스 설명서를 참조하고 예상 입력이 어떻게 될지 확인하고 값의 일부가를 비교하고 차이가 어떻게 그 예상 입력의 일치하도록 값을 변경하는 것을 알 것입니다.

    문장과 함께 첫 번째 결과 페이지를 가져왔다 "Informix의 진수 기능"에 대한 간단한 구글 검색 : "리터럴 정수 또는 다른 표현이 반환 정수이어야합니다." 데이터 유형이 문자열 인 경우, 첫 번째 문자열을 정수로 변환합니다. 첫눈에 당신이 캐스트 기능 (나는 이것에 대해 확실하지 오전)와 함께 뭔가를 할 것 같습니다.

    select hex(cast SomeStringColumn as int)) from SomeTable
    
  4. ==============================

    4.이건 어떤가요:

    이건 어떤가요:

    declare @hexstring varchar(max);
    set @hexstring = 'E0F0C0';
    select cast('' as xml).value('xs:hexBinary( substring(sql:variable("@hexstring"), sql:column("t.pos")) )', 'varbinary(max)')
    from (select case substring(@hexstring, 1, 2) when '0x' then 3 else 0 end) as t(pos)
    

    나는 여기를 보았다 : http://blogs.msdn.com/b/sqltips/archive/2008/07/02/converting-from-hex-string-to-varbinary-and-vice-versa.aspx

    죄송 만에 그 일> 2005 MS SQL

  5. ==============================

    5.OLD 포스트하지만 내 경우에는 나는 또한 코드 아래 사용하도록 진수의 0X 부분을 제거했다. (I는 MS SQL을 사용하고 있습니다)

    OLD 포스트하지만 내 경우에는 나는 또한 코드 아래 사용하도록 진수의 0X 부분을 제거했다. (I는 MS SQL을 사용하고 있습니다)

    변환 (VARCHAR, 변환 (VARBINARY (MAX), YOURSTRING), 2)

  6. from https://stackoverflow.com/questions/219245/converting-a-string-to-hex-in-sql by cc-by-sa and MIT license