SQL Server에서 varbinary를 문자열로 변환하는 중
에서 T-SQL로 변환하고 싶습니다.varbinary
type to string type
다음은 예입니다.
처음엔 내가 이걸 얻었소varbinary
0x21232F297A57A5A743894A0E4A801FC3
그런 다음 이를 다음으로 변환합니다.
21232f297a57a5a743894a0e4a801fc3
어떻게 하는 거지?
시도:
DECLARE @varbinaryField varbinary(max);
SET @varbinaryField = 0x21232F297A57A5A743894A0E4A801FC3;
SELECT CONVERT(varchar(max),@varbinaryField,2),
@varbinaryField
업데이트됨: SQL Server 2008용
이것이 오래된 질문이라는 것을 알지만, 일부 상황에서 더 유용하다는 것을 알게 된 대안적인 접근법이 있습니다.master.dbo.fn_varbintohexstr 함수는 적어도 SQL2K 이후부터 SQL Server에서 사용할 수 있었다고 생각합니다. 여기에 완전성을 위해 추가합니다.일부 독자는 이 함수의 소스 코드를 살펴보는 것이 유용할 수도 있습니다.
declare @source varbinary(max);
set @source = 0x21232F297A57A5A743894A0E4A801FC3;
select varbin_source = @source
,string_result = master.dbo.fn_varbintohexstr (@source)
단일 항목을 변환하려는 경우VARBINARY
에 가치를 두는.VARCHAR
(STRING
) 다음과 같은 변수를 선언하여 수행할 수 있습니다.
DECLARE @var VARBINARY(MAX)
SET @var = 0x21232F297A57A5A743894A0E4A801FC3
SELECT CAST(@var AS VARCHAR(MAX))
테이블 열에서 선택하려는 경우 다음과 같이 할 수 있습니다.
SELECT CAST(myBinaryCol AS VARCHAR(MAX))
FROM myTable
이 기능은 SQL 2005 및 2008에서 모두 작동합니다.
declare @source varbinary(max);
set @source = 0x21232F297A57A5A743894A0E4A801FC3;
select cast('' as xml).value('xs:hexBinary(sql:variable("@source"))', 'varchar(max)');
저는 모든 곳을 찾아 답을 찾았고 마침내 이것이 저에게 효과가 있었습니다.
SELECT Lower(Substring(MASTER.dbo.Fn_varbintohexstr(0x21232F297A57A5A743894A0E4A801FC3), 3, 8000))
출력 대상(문자열):
2232f297a57a5a743894a0e4a801fc3
VARY 레코드를 문자열과 비교/일치시키고 싶은 경우에도 WHERE 또는 JOIN 조건에서 사용할 수 있습니다.
다음은 2가지 변환 방법을 사용하여 변환 및 다시 변환하기 위해 작성한 간단한 예입니다. 고정 문자열로도 확인했습니다.
@VB1 VARB 선언INARY(500), @VB2 VARBINARY(500),@VB3VARBINARY(500)
@S1 VARCHAR(500) 선언
설정 @VB1=해시바이트('SHA1', '테스트')
SET @S1=SV(varchar(500),@VB1,2)
설정 @VB2=변환(가변(500),@S1,2)
설정 @VB3=변환(변수(500), '640AB2B)AE07BEDC4C163F679A746F7AB7FB5D1FA',2)
@VB1,@S1,@VB2,@VB3를 선택합니다.
IF @VB1=@VB2 인쇄 '일치(2)'
IF @VB1=@VB3 인쇄 '일치(3)'
PRINT str(Len(@VB1)
PRINT str(Len(@S1)
PRINT str(Len(@VB2)
설정 @VB1=해시바이트('SHA1', '테스트')
SET @S1=SB(varchar(500),@VB1,1)
설정 @VB2=변환(가변(500),@S1,1)
@VB1,@S1,@VB2를 선택합니다.
IF @VB1=@VB2 인쇄 '일치(1)'
PRINT str(Len(@VB1)
PRINT str(Len(@S1)
PRINT str(Len(@VB2)
및 산출물
0x1200AB2BAE07BEDC4C163F679A746F7AB7FB5D1FA|640AB2BAE07BEDC4C163F679A746F7AB7FB5D1FA|0x640AB2BAE07BEDC4C163F679A746F7AB7FB5D1FA|0x640AB2BAE07BEDC4C163F679A746F7AB7FB5D1FA
(1열 영향)
일치하는 항목(2)
일치하는 항목(3)
20
40
20
0x1200AB2BAE07BEDC4C163F679A746F7AB7FB5D1FA|0x640AB2BAE07BEDC4C163F679A746F7AB7FB5D1FA|0x640AB2BAE07BEDC4C163F679A746F7AB7FB5D1FA
(1열 영향)
일치하는 항목(1)
20
42
20
언급URL : https://stackoverflow.com/questions/12139073/sql-server-converting-varbinary-to-string
'bestsource' 카테고리의 다른 글
파이썬에서 모듈과 라이브러리의 차이점은 무엇입니까? (0) | 2023.08.07 |
---|---|
MySQL 테이블의 존재 여부 확인 (0) | 2023.08.07 |
마크다운 및 이미지 정렬 (0) | 2023.08.07 |
중지 설정 간격 (0) | 2023.08.02 |
아이폰이 연결되지 않았습니다.iPhone이 연결되면 Xcode가 계속됩니다. (0) | 2023.08.02 |