2011-03-07 5 views
1

임의의 열의 값을 매개 변수로 사용하는 CLR 저장 프로 시저가 있습니다.CLR sproc, object-parameter accepting nvarchar (max)

[SqlFunction] 
public static bool IsTrue(object storedValue... 

유형 nvarchar(max)의 열에서 데이터를 전달 내가 얻을 :

"피연산자 유형 충돌 : 유형 object/sql_variant의 경우 가능한 모든 열을 매개 변수를 처리하기 위해 NVARCHAR (최대 것은) 호환되지 않는 입니다 with sql_variant "를 참조하십시오. 매개 변수가 문자열 있었다면

나는 그것이 개체에 대해 수행하는 방법을 길이> 4000와 열을 받아 들일 수 있도록 SqlChar로 선언 또는 [SqlFacet(MaxSize=-1)]로 장식 한 수 있을까?

답변

1

나는 당신이 시도하고있는 것을 성취 할 수 있다고 생각하지 않습니다. sql_variant의 위쪽 경계는 8k bytes입니다. nvarchar (최대) 은 출처가2^31-1 bytes입니다. SQL Server가 텍사스 주를 Dixie 컵에 넣으려고 시도하고 있습니다. 8k sql_variant 한계로 인해 SQL Server가 그렇게 할 수 있도록 설득 할 데코레이터가 없습니다.

+0

감사합니다. 그건 의미가 있습니다. 나는이 경우에 해결 방법을 사용했고 다음번에 다른 것을 시도해야한다는 것을 알았습니다. – Grastveit

관련 문제