반응형
SQL Server : Case 문에서 UniqueIdentifier를 문자열로 변환
때때로 예외 스택 추적이있는 메시지 열이있는 로그 테이블이 있습니다. 메시지에 이것이 있는지 여부를 결정하는 기준이 있습니다. 이 메시지를 고객에게 보여주고 싶지는 않지만 대신
내부 오류가 발생했습니다. 참조 코드 xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx로 문의하십시오.
여기서 xxx etc는 테이블의 guid 열입니다. 저장된 proc을 다음과 같이 쓰고 있습니다.
declare @exceptionCriteria nvarchar(50)
select @exceptionCriteria = '%<enter criteria etc>%'
select LogDate,
case
when Message like @exceptionCriteria
then 'Internal Error Occured. Reference Code: ' + str(RequestID)
else Message
end
from UpdateQueue
RequestID
SQL Server의 Guid 데이터 유형이며 여기서 문자열로 변환되지 않습니다. Guid를 문자열로 변환하는 방법에 대한 코드를 보았지만 여러 줄로 표시되어 있으며 case 문에서 작동하지 않을 것이라고 생각합니다. 어떤 아이디어?
나는 대답을 찾았다 고 생각한다.
convert(nvarchar(50), RequestID)
이 정보를 찾은 링크는 다음과 같습니다.
http://msdn.microsoft.com/en-us/library/ms187928.aspx
여기서 변환 기능을 사용할 수 있지만 고유 식별자 값을 보유하기에 36 자이면 충분합니다.
convert(nvarchar(36), requestID) as requestID
제 생각에 uniqueidentifier
/ GUID는 a varchar
가 nvarchar
아니라 a char(36)
입니다. 따라서 다음을 사용합니다.
CAST(xyz AS char(36))
대신 Str(RequestID)
, 시도convert(varchar(38), RequestID)
반응형
'Programming' 카테고리의 다른 글
디렉토리의 모든 파일 이름을 $ filename_h에서 $ filename_half로 바꾸시겠습니까? (0) | 2020.07.16 |
---|---|
'(groovy.lang.Closure)'에 '종속성'을 적용 할 수 없습니다 (0) | 2020.07.16 |
멋진 열 레이아웃을 위해 vim으로 다시 포맷 (0) | 2020.07.16 |
하나의 명령문에서 한 번에 여러 항목을 HashMap에 추가 (0) | 2020.07.16 |
Bash에서 파일의 마지막 수정 날짜를 인쇄하십시오. (0) | 2020.07.16 |