2012-06-08 1 views
4

문자열에 포함 된 null 문자 인 Char(0)을 대체 할 SQL Server T-SQL 구문은 무엇입니까? 16 진수 코드가 있니?SQL Server에서 16 진수 코드로 문자열에 포함 된 Char (0)을 문자 코드로 바꿉니다.

e.e.

REPLACE('t'+Char(0)+'t', Char(0), REPLACE(master.dbo.fn_varbintohexstr(0), '000000', '')) 

't0x00t'을 반환하지 않습니다. (이미 1에서 31까지 작동합니다.)

question은 문제를 설명하는 해답이 있습니다.

answermaster.dbo.fn_varbintohexstr(0)0x00000000을 표시합니다.

내가 수동으로 단지 Collate 절은 위의 질문은 제안에이 답변처럼 작동하도록 한 추가, 내부 Replace'0x00'를 단순화,하지만 난 (전체 표현 작동하는 버전을 찾을 수없는 9, 10 및 13을 건너 뛰고 모든 n, 0에서 31까지 사용할 수 있습니다.

답변

2

원하는 사항은 무엇입니까?

SELECT REPLACE('t'+Char(0)+'t', Char(0), CONVERT(VARCHAR(10),REPLACE(master.dbo.fn_varbintohexstr(0), '000000', ''))) 

당신은 VARCHAR

에 명시 적으로 변환해야하고 전체 표현이 내부 제거하려는 경우 그냥 완전성에 대한 최종 SQL을

SELECT REPLACE('t'+Char(0)+'t', Char(0), CONVERT(VARCHAR(10),master.dbo.fn_varbintohexstr(0))) 
+0

대체 : 0을 선택합니다 (로 m로' N 조합 모두 N <31) 업데이트 메시지 세트 보낼 메세지 = 대체 (보낼 메세지, 문자 (N) SQL_Latin1_General_CP1_CS_AS 부씩 CONVERT (VARCHAR (10) m + 1에서 n 개의 선택 (9, 10, 12, 13) 이 아니고 MessageText가 '%'와 같은 경우 + char (n) collate SQL_Latin1_General_CP1_CS_AS + '%' ' –

관련 문제