【发布时间】:2021-08-05 17:29:11
【问题描述】:
我有一个表,其中有一列 ([To]) 定义为 nvarchar(max)。根据http://msdn.microsoft.com/en-gb/library/ms186939.aspx,nvarchar(max) 列的最大长度为 2^32。
我正在尝试将一个 > 4000 个字符的字符串(我猜成功的阈值是 4000,但我还没有真正证明这一点)绑定到此列并且它因 HY104:1:0 而失败
SQLBindParameter:HY104:1:0:[Microsoft][SQL Server Native Client 11.0]无效的精度值
我尝试绑定的字符串的示例长度是 21707。
我尝试使用以下 ODBC 驱动程序运行,结果对所有驱动程序都是一样的:
{SQL Server}
{SQL Server Native Client 10.0}
{SQL Server Native Client 11.0}
我正在拨打的实际电话是:-
Q->ret = SQLBindParameter(Q->stmt, i, SQL_PARAM_INPUT, SQL_C_WCHAR, SQL_WVARCHAR,
(SQLINTEGER) (len ? len : 1), 0, data, (SQLINTEGER) len, 0);
地点:-
len = 21707
data = unicode string of length 21708 characters (43414 bytes) followed by (WORD)0
SQL 服务器详细信息:
Microsoft SQL Server Express Edition with Advanced Services (64-bit)
10.50.2550.0
Windows 7 64 bit
我做错了什么?
【问题讨论】:
-
nvarchar(max)的最大长度为 20 亿字节 - 或 10 亿个字符(因为每个字符始终为 2 个字节)
标签: sql-server-2008 nvarchar sqlbindparameter