Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.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 对sp_OA的调用会在标量函数内执行期间导致错误_Sql_Sql Server_Database_Tsql - Fatal编程技术网

Sql 对sp_OA的调用会在标量函数内执行期间导致错误

Sql 对sp_OA的调用会在标量函数内执行期间导致错误,sql,sql-server,database,tsql,Sql,Sql Server,Database,Tsql,数据库中有一个标量函数,它使用sp\u OA方法调用程序集。从视图调用标量函数。SQL Server是Microsoft 2008 R2,一种32位安装。我们在三个不同的服务器上安装了相同的数据库。在其中一个节点上,调用函数失败,并显示此消息 Msg 557,16级,状态2,仅第2行功能和一些扩展 存储过程可以在函数中执行 在另外两个上,它工作得很好。是否有一个特定SQL Server上缺少的设置?或者是别的什么?互联网对这个错误模棱两可 谢谢。谢谢你的提示。这个问题解决得相当笨拙。遗留代码中的

数据库中有一个标量函数,它使用
sp\u OA方法调用程序集。从视图调用标量函数。SQL Server是Microsoft 2008 R2,一种32位安装。我们在三个不同的服务器上安装了相同的数据库。在其中一个节点上,调用函数失败,并显示此消息

Msg 557,16级,状态2,仅第2行功能和一些扩展 存储过程可以在函数中执行

在另外两个上,它工作得很好。是否有一个特定SQL Server上缺少的设置?或者是别的什么?互联网对这个错误模棱两可


谢谢。

谢谢你的提示。这个问题解决得相当笨拙。遗留代码中的一个未经处理的错误(通过错误数据)似乎使标量函数陷入了困境,导致该特定错误出现


多谢各位

神圣的噩梦。您有一个调用标量函数的视图吗?您的标量函数反过来调用sp_OA方法?我看到像这样的事情产生了非常奇怪的行为。您实际上想做什么?为什么要从视图中调用sp_OA方法???同意@SeanLange-同时(1)sp_OA现在已经不是大多数任务的首选方法(2)
32位
为什么?(3) 虽然这可能是由于兼容性级别或其他原因,但我确实认为您应该探索您的实际需求,并以更好的方式解决此问题。调用试图执行存储过程(特别是sp_OA)的标量函数的视图是一场即将发生的灾难。我完全同意这种情况不是最佳的,甚至更糟,我预计会有人嘲笑和调用“为什么,上帝,为什么?”。用一句不朽的话来说:“它就是它的本来面目”,而公司预算比任何让事情变得更好的愿望都要强烈。sp_OA调用旧的VB6代码,这些代码不能在.net中重新编写、复制或分解。SQL Server 2008 R2 64位不支持OA调用,依赖于程序集。标量函数只接受一个值,并通过sp_oa调用返回另一个值。由于这个原因,它被设置为标量函数格式,可以从多个SQL源调用,包括用于第三方报表引擎的视图。亚伦,谢谢你的建议。我将查看sp_配置选项。如果它能在三分之二的服务器实例上工作,那么它的配置中肯定有问题,尽管错误很奇怪。至少它调用的是VB6,而不是fortran或cobol