"传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确" 异常
有一个输入参数类型为varchar(Max)的存储过程,使用如下SQL语句构造并为该参数赋值:
SqlParameter parameters = new SqlParameter("@SSQL", SqlDbType.VarChar);
当传递数据量过大时,出现异常:“传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确。参数 8 (""@SSQL""): 数据类型 0xA7 的数据长度或元数据长度无效。”
默认情况下不指定VarChar的大小时,最大只支持8000个字符。
解决方法:
修改为:SqlParameter parameters = new SqlParameter("@SSQL", SqlDbType.VarChar , -1);
当指定为-1时,即对应VarChar(Max)。