문자열 또는 이진 데이터가 잘립니다. TRY_CAST에서 오류가 발견되지 않았습니다.

nw.

아래 쿼리는 ...

SELECT YEAR(TRY_CAST(m.MetaValue AS DATE))
FROM MetaData m

...이 오류가 발생합니다.

String or binary data would be truncated.

쿼리를 유효한 레코드 집합으로 필터링하면 오류가 사라집니다.

SELECT YEAR(TRY_CAST(m.MetaValue AS DATE))
FROM MetaData m
WHERE m.MetaKey IN (...)

선택한 표현식을 기준으로 필터링하려고하면 쿼리가 다시 실패합니다.

SELECT * FROM (
    SELECT YEAR(TRY_CAST(m.MetaValue AS DATE)) AS Yr
    FROM MetaData m
    WHERE MetaKey IN (...)
) x
WHERE x.Yr > 1900

여기서 무슨 일이 일어나고 있습니까? SQL Server가 이러한 행을 따라 쿼리를 최적화하고 있다는 느낌을 받았지만이를 방지하는 방법을 모르겠습니다.

SELECT YEAR(TRY_CAST(m.MetaValue AS DATE)) AS Yr
FROM MetaData m
WHERE MetaKey IN (...)
AND YEAR(TRY_CAST(m.MetaValue AS DATE)) > 1900
마틴 스미스

바이트 인 경우이 문제 MetaValue가 발생 > 8,000합니다. 에 의해 잡히지 않은 오류가 발생합니다 TRY_CAST.

이것에 대한 간단한 데모는 다음과 같습니다 ( db <> fiddle )

DECLARE @X NVARCHAR(MAX) = 'X'
SET @X = REPLICATE(@X, 4001)

SELECT TRY_CAST(@X AS DATE)

일반적으로 SQL Server는 조건과 일치하는 모든 항목 이 짧은 문자열 인 경우에도 논리적 처리 순서를 벗어난 평가할 수 있습니다 WHERE MetaKey IN (...)( 여기 에서도 경고 됨 ).

TRY_CAST추가 CASE표현식 에서 가드하면 이 경우 문제가 해결됩니다.

SELECT CASE WHEN DATALENGTH(m.MetaValue) <8000 THEN YEAR(TRY_CAST(m.MetaValue AS DATE)) END
FROM MetaData m
WHERE m.MetaKey IN (...)

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

DBCC CHECKIDENT에서 "문자열 또는 이진 데이터가 잘립니다"

분류에서Dev

Azure Data Factory 오류-문자열 또는 이진 데이터가 잘립니다.

분류에서Dev

문자열 또는 이진 데이터가 잘립니다. 데이터를 제거하는 동안 문이 종료되었습니다.

분류에서Dev

문자열 또는 이진 데이터가 잘립니다. 데이터를 제거하는 동안 문이 종료되었습니다.

분류에서Dev

문자열 또는 이진 데이터가 잘립니다. ASP VB.NET

분류에서Dev

System.Data.SqlClient.SqlException : 문자열 또는 이진 데이터가 잘립니다.

분류에서Dev

메시지 8152, 수준 16, 상태 2, 줄 22-문자열 또는 이진 데이터가 잘립니다.

분류에서Dev

문자열 또는 이진 데이터는 Varbinary (MAX)에서 잘립니다.

분류에서Dev

varbinary (max) String 또는 바이너리 데이터에 삽입 오류가 잘립니다. 그 진술서는 만료되었습니다

분류에서Dev

ConnectionString 속성이 초기화되지 않았습니다. 데이터베이스에 데이터를 삽입하는 동안 오류가 발생했습니다.

분류에서Dev

이 오류를 해결하는 방법 : nvarchar 값 '문자열 또는 이진 데이터가 잘립니다.'를 변환 할 때 변환에 실패했습니다. 데이터 유형 int

분류에서Dev

"문자열 또는 이진 데이터가 잘립니다." NVARCHAR의 경우이지만 LIKE 연산의 VARCHAR은 아닙니다.

분류에서Dev

SQL Server (0x80131904) : 문자열 또는 이진 데이터가 잘립니다.

분류에서Dev

데이터베이스, 방법 또는 작업 읽기 오류가 구현되지 않았습니다.

분류에서Dev

파이썬 오류 TypeError : 문자열 형식화 중에 모든 인수가 변환되지 않았습니다.

분류에서Dev

문자열 일치가 발견되면 PHP에서 curl 요청을 중지하는 방법이 있습니까?

분류에서Dev

오류 : URL PHP API 스크립트에서 잘못된 문자가 발견되었습니다.

분류에서Dev

SQL Server : 교체 스크립트 오류가 나에게 문자열을 제공하거나 이진 데이터가 잘립니다.

분류에서Dev

SQL Server : 교체 스크립트 오류가 나에게 문자열을 제공하거나 이진 데이터가 잘립니다.

분류에서Dev

Vue CLI 오류 : 속성 또는 메서드 "데이터"가 인스턴스에 정의되지 않았습니다.

분류에서Dev

오류가 발생하는 이유 : 창이 정의되지 않았습니다.

분류에서Dev

HBase 마스터 : CodedInputStream에 음수 크기가 있다고 주장하는 포함 된 문자열 또는 메시지가 발견되었습니다.

분류에서Dev

MongoDB Compass 오류- "["또는 AggregationStage가 필요하지만 "{"이 (가) 발견되었습니다. $ group 내에서 $ sum을 사용하려고 할 때

분류에서Dev

밀리 초가있는 ParseExact에서 문자열이 유효한 DateTime으로 인식되지 않았습니다.

분류에서Dev

SQL에서 "잘못된 매개 변수 번호 : 매개 변수가 정의되지 않았습니다."라는 오류가 발생하는 이유

분류에서Dev

치명적인 오류 : 발견되지 않은 mysqli_sql_exception : 쿼리 / 준비된 문에 인덱스가 사용되지 않았습니다. SELECT * FROM Product

분류에서Dev

Eclipse는 '패키지 탐색기'에서 Android 애플리케이션에 대한 오류를 표시하지만 코드에서 오류가 발견되지 않았습니다.

분류에서Dev

오류가 발견 되어도 사용자에게 오류 메시지가 표시되는 이유는 무엇입니까?

분류에서Dev

서블릿 호출에서 적절한 드라이버가 발견되지 않았습니다.

Related 관련 기사

  1. 1

    DBCC CHECKIDENT에서 "문자열 또는 이진 데이터가 잘립니다"

  2. 2

    Azure Data Factory 오류-문자열 또는 이진 데이터가 잘립니다.

  3. 3

    문자열 또는 이진 데이터가 잘립니다. 데이터를 제거하는 동안 문이 종료되었습니다.

  4. 4

    문자열 또는 이진 데이터가 잘립니다. 데이터를 제거하는 동안 문이 종료되었습니다.

  5. 5

    문자열 또는 이진 데이터가 잘립니다. ASP VB.NET

  6. 6

    System.Data.SqlClient.SqlException : 문자열 또는 이진 데이터가 잘립니다.

  7. 7

    메시지 8152, 수준 16, 상태 2, 줄 22-문자열 또는 이진 데이터가 잘립니다.

  8. 8

    문자열 또는 이진 데이터는 Varbinary (MAX)에서 잘립니다.

  9. 9

    varbinary (max) String 또는 바이너리 데이터에 삽입 오류가 잘립니다. 그 진술서는 만료되었습니다

  10. 10

    ConnectionString 속성이 초기화되지 않았습니다. 데이터베이스에 데이터를 삽입하는 동안 오류가 발생했습니다.

  11. 11

    이 오류를 해결하는 방법 : nvarchar 값 '문자열 또는 이진 데이터가 잘립니다.'를 변환 할 때 변환에 실패했습니다. 데이터 유형 int

  12. 12

    "문자열 또는 이진 데이터가 잘립니다." NVARCHAR의 경우이지만 LIKE 연산의 VARCHAR은 아닙니다.

  13. 13

    SQL Server (0x80131904) : 문자열 또는 이진 데이터가 잘립니다.

  14. 14

    데이터베이스, 방법 또는 작업 읽기 오류가 구현되지 않았습니다.

  15. 15

    파이썬 오류 TypeError : 문자열 형식화 중에 모든 인수가 변환되지 않았습니다.

  16. 16

    문자열 일치가 발견되면 PHP에서 curl 요청을 중지하는 방법이 있습니까?

  17. 17

    오류 : URL PHP API 스크립트에서 잘못된 문자가 발견되었습니다.

  18. 18

    SQL Server : 교체 스크립트 오류가 나에게 문자열을 제공하거나 이진 데이터가 잘립니다.

  19. 19

    SQL Server : 교체 스크립트 오류가 나에게 문자열을 제공하거나 이진 데이터가 잘립니다.

  20. 20

    Vue CLI 오류 : 속성 또는 메서드 "데이터"가 인스턴스에 정의되지 않았습니다.

  21. 21

    오류가 발생하는 이유 : 창이 정의되지 않았습니다.

  22. 22

    HBase 마스터 : CodedInputStream에 음수 크기가 있다고 주장하는 포함 된 문자열 또는 메시지가 발견되었습니다.

  23. 23

    MongoDB Compass 오류- "["또는 AggregationStage가 필요하지만 "{"이 (가) 발견되었습니다. $ group 내에서 $ sum을 사용하려고 할 때

  24. 24

    밀리 초가있는 ParseExact에서 문자열이 유효한 DateTime으로 인식되지 않았습니다.

  25. 25

    SQL에서 "잘못된 매개 변수 번호 : 매개 변수가 정의되지 않았습니다."라는 오류가 발생하는 이유

  26. 26

    치명적인 오류 : 발견되지 않은 mysqli_sql_exception : 쿼리 / 준비된 문에 인덱스가 사용되지 않았습니다. SELECT * FROM Product

  27. 27

    Eclipse는 '패키지 탐색기'에서 Android 애플리케이션에 대한 오류를 표시하지만 코드에서 오류가 발견되지 않았습니다.

  28. 28

    오류가 발견 되어도 사용자에게 오류 메시지가 표시되는 이유는 무엇입니까?

  29. 29

    서블릿 호출에서 적절한 드라이버가 발견되지 않았습니다.

뜨겁다태그

보관