Sql server 使用nvarchar时文本溢出(最大值)?

Sql server 使用nvarchar时文本溢出(最大值)?,sql-server,regex,sql-server-2005,Sql Server,Regex,Sql Server 2005,我遇到了一个奇怪的情况,似乎涉及到长文本溢出。我在nvarchar(max)列上使用fn\u pcre\u replace(来自),当我替换为比原来多的字符时,如果原始字符串长度超过8000个字符,它将返回NULL 比如说这个, Select master.dbo.fn_pcre_replace(Overview,'a', 'X') from ProjectContent 工作如预期,但这个 Select master.dbo.fn_pcre_replace(Overview,'a', 'X

我遇到了一个奇怪的情况,似乎涉及到长文本溢出。我在
nvarchar(max)
列上使用
fn\u pcre\u replace
(来自),当我替换为比原来多的字符时,如果原始字符串长度超过8000个字符,它将返回NULL

比如说这个,

Select master.dbo.fn_pcre_replace(Overview,'a', 'X')
from ProjectContent 
工作如预期,但这个

Select master.dbo.fn_pcre_replace(Overview,'a', 'XXX')
from ProjectContent 
在大多数情况下返回NULL(显然,只要
Len(Overview)>8000


这是
xp\u pcre
的一个限制,还是我可以在我的SQL中做些什么来实现这一点?

这是
xp\u pcre
的一个限制。看看资料来源:

    switch (bType)
    {
    case SRVBIGCHAR:
    case SRVBIGVARCHAR:
        break;
    default:
        throw XpException(
            StringBuilder()
            << "Invalid data type on parameter "
            << paramNum
            << " (should be CHAR or VARCHAR)."
            );
    }
开关(bType)
{
案例SRVBIGCHAR:
案例SRVBIGVARCHAR:
打破
违约:
抛出XpException(
StringBuilder()

谢谢!我想我只需要在.NET而不是SQL中进行清理。