我有一个问题,无法解决。我正在使用SQL Server 2005,C# CLR来使用外部dll。问题在于参数的长度。我需要使用函数参数类型varchar(max)
。如果在C#代码中我使用string
、SqlSring
,我无法使用T-SQL类型varchar(max)
,只能使用varchar(4000)
或nvarchar(4000)
。我需要说明的是,可能会出现需要使用超过4000个符号的情况,因此我需要知道如何使用哪种C#类型来表示varchar(max)
。
我已经阅读了很多文章,其中几篇文章说,可以使用SqlChars
来解决这个问题。但是!我需要对字符串进行操作,我该如何使用string
或SqlString
并将其转换为SqlChars
?(可能需要使用SqlChars.ToString()
或SqlChars.ToSqlString()
)。
我没有找到任何关于此的C#代码。
varchar(max)
字符串将无法加载到 CLR 字符串中,因为它会耗尽地址空间。您能否更明确地说明您想对这些字符串执行哪些操作? - Damien_The_Unbelievervarchar(max)
和.NET的string
实例都可以达到2GB大小... - marc_svarchar(max)
变量可以容纳超过2GB。但是我主要是从另一个方面考虑的。当然在32位CLR下,您实际上无法分配2GB的对象,即使在64位下也可能会遇到困难。 - Damien_The_Unbeliever