Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 索引超出了数组SQL server的界限_Sql Server - Fatal编程技术网

Sql server 索引超出了数组SQL server的界限

Sql server 索引超出了数组SQL server的界限,sql-server,Sql Server,在SQL server上执行用户定义函数时,我收到以下消息: System.IndexOutOfRangeException:索引超出了数组的边界 我尝试了下面链接中给出的解决方案,但没有解决 SQL Server版本 Microsoft SQL Server 2012 - 11.0.2218.0 (X64) Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 功能代码: create FUNCTION [dbo].[ToGregorianDa

在SQL server上执行用户定义函数时,我收到以下消息:

System.IndexOutOfRangeException:索引超出了数组的边界

我尝试了下面链接中给出的解决方案,但没有解决 SQL Server版本

Microsoft SQL Server 2012 - 11.0.2218.0 (X64) 
Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1
功能代码:

create FUNCTION [dbo].[ToGregorianDate](@pDate [nvarchar](4000))
RETURNS [datetime] WITH EXECUTE AS CALLER
AS 
EXTERNAL NAME [PersianSQLFunctions].[UserDefinedFunctions].[ToGregorianDate]
我在其中调用函数的查询是: 从StartDate不为null的ProjectOutput中选择dbo.ToGregorianDate(StartDate)
它们在ProjectOutput表中有86846条记录

可能是您正在使用数组并在其中循环。循环执行的次数超过了现有记录数。例如,数组有4个元素。循环从0执行到4,而应该从0执行到3。也许你应该使用数组和循环(如果有的话)。请发布函数代码。看起来你试图通过高于数组长度的索引访问元素。如果长度为,则数组的长度为3,并且您正在尝试访问第4个元素。(arr[3])但您可以访问的最大值是arr[2],这是一个.NET错误,而不是SQL Server错误。因此,请找出引发此异常的.NET代码段,如果您无法通过检查或调试解决此问题,请将该代码放入您的问题中。如果Management Studio存在错误,则可能会产生此错误,在这种情况下,请尝试其他工具(如
cmd
)。另一种可能性是,您的函数是CLR函数,并且包含一个bug,在这种情况下,您需要找到它的源代码,或者在程序集上使用反汇编程序。SQL Server本身不是用.NET编写的,因此无法生成此错误。