Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.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 在Cognos视图中使用存储过程_Sql Server_Tsql_Cognos - Fatal编程技术网

Sql server 在Cognos视图中使用存储过程

Sql server 在Cognos视图中使用存储过程,sql-server,tsql,cognos,Sql Server,Tsql,Cognos,我试图从Cognos视图执行一个存储过程。我可以从视图运行存储过程并查看结果,但它不允许我保存它。当我去保存时,它说我在“EXEC”有一个语法错误。我想做的事情可能吗 下面的SQL块: EXEC [dbo].[SEL_EQUIP_FUEL_BY_DATES] @EQUIP_IN = N'1', @START_DATE = N'12-01-2012', @END_DATE = N'12-31-2099', @FLAG = 0,

我试图从Cognos视图执行一个存储过程。我可以从视图运行存储过程并查看结果,但它不允许我保存它。当我去保存时,它说我在“EXEC”有一个语法错误。我想做的事情可能吗

下面的SQL块:

EXEC    [dbo].[SEL_EQUIP_FUEL_BY_DATES]
        @EQUIP_IN = N'1',
        @START_DATE = N'12-01-2012',
        @END_DATE = N'12-31-2099',
        @FLAG = 0,
        @init = N'GLR',
        @pid = 156
提前感谢您的帮助

不,不可能

视图可以基于表、其他视图和函数,每个视图的主体必须是
SELECT
语句

存储过程不容易组合成查询


也许您可以将存储过程改为一个?

您不能参数化视图,但可以使用内联函数。如果Cognos能够处理这些问题,这将是一条出路。我怀疑它们可能能够,因为您可以像选择表或视图一样从它们中进行选择,只使用您的参数(与您必须执行的存储过程不同)。你可以这样称呼它

Select * from myTableFunction(param1, param2, param3);

请参见

我不想告诉您,但是这里涉及到的视图在哪里?Cognos不能从存储过程中检索数据(或者我的Cognos guy告诉我的),但可以读取表和视图。所以我需要一个存储过程的视图。参数永远不会改变。希望我有点道理……您需要从存储过程内部提取
SELECT
,并将其用作“视图主体”——您不能在视图的上下文中执行存储过程。Cognos可以非常愉快地执行存储过程,只要它返回一个结果集。如果你的Cognos助手告诉你不是这样,那么你可能需要一个新的Cognos助手。@TomTom哇,有一个视图设计器。。。但遗憾的是,我无法在其中执行sp。在Mgmt Studio 2012中:右键单击“视图”文件夹,选择“新建视图”,感谢您提供了有用的答案,尽管有一些无用的注释。在Cognos中,您可以通过自定义sql查询创建数据源查询主题,并将Cognos报告级“提示”参数插入查询中。