"표현식을 nvarchar 데이터 형식으로 변환하는 동안 산술 오버플로 오류가 발생했습니다."

Mo_Dlg

고유 식별자를 얻기 위해 여러 열을 복합 키로 조인해야하는 두 테이블 간의 데이터 비교를 시도하고 있습니다. CTE를 사용하고 있으며 코드는 다음과 같습니다.

WITH SuburbDataTest AS (
  SELECT *
    ,  CAST(Address AS NVARCHAR(100))+' ' +CAST(LivingAddress AS NVARCHAR(2))
    + ' ' + CAST(StartDate AS NVARCHAR(11))+ ' ' +CAST(AddressTypeId AS NVARCHAR(1))
    + ' ' +CAST(SuburbId AS NVARCHAR(1))AS SuburbDataTestColumn
  FROM [mig].[ConsumerAddressMigration]
  WHERE SuburbId is NOT NULL
)
SELECT *
FROM SuburbDataTest staging
WHERE SuburbDataTestColumn IN (
  SELECT Address+' ' +CAST(LivingAddress AS NVARCHAR(2))+ ' '+CAST(StartDate AS NVARCHAR(11))
    + ' ' +CAST(AddressTypeId AS NVARCHAR(1))+ ' ' +CAST(SuburbId AS NVARCHAR(1)) AS SuburbDataTestColumn
  FROM [dbo].[tblConsumerAddress]
)

불행히도 나는

식을 데이터 형식 nvarchar로 변환하는 동안 산술 오버플로 오류가 발생했습니다.

어떤 아이디어?

고든 리노 프

이것은 숫자를 문자열로 변환 할 때 발생하며 문자열이 충분히 크지 않습니다. 이것이 문제라고 생각합니다.

CAST(SuburbId AS NVARCHAR(1))

SuburbId가 9보다 큰 숫자 이면 오류가 발생합니다. 또는 값이 음수이면 동일한 오류가 발생합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관