MS Excel 2010 64位 本地计算机上的Windows 7 Pro 64位 SQL Server 2012
我经常调用SQL Server中的存储过程将数据返回到Excel以便在数据透视表中进行分析。我使用Microsoft Query的SQL编辑器中的以下语法将参数传递给sp:
{Call dbo.MySP(?,?,?,)}
其中dbo.MySP
是一个带三个参数的SP。当我将查询的输出返回到Excel时,我可以选择要引用的单元格来获取参数值。
昨天我写了一个带有3个参数的SP:一个日期,另一个日期和一个用逗号分隔的文本字符串。 SP将它们声明为两个DATETIMES
和一个NVARCHAR(4000)
。像往常一样,我将Excel中的日期转换为yyyy-mm-dd
形式的文本字符串以传递它们,但文本字符串只是一个字符串,其中各个值由管道(|
)分隔。 / p>
当我尝试选择包含小于255
个字符的文本字符串的单元格时,一切都很好。如果我查看255
,我会收到Excel抱怨的错误:
错误的参数类型。 Microsoft Excel期待不同的类型 提供的价值。
更改分隔符没有任何影响。
请注意,这显然是一个Excel限制,使用任何长度参数运行相同的查询在SSMS中工作正常。