有一张400多万的事实表,此表存有年、季、月的三种数据,报表查询项里,年下拉框是必选的,即先按年查询,如果只查看年数据,则月、季下拉框隐藏,否则显示,报表直接访问该表数据时打开报表速度特别慢,既然必须先选年,现在我把这张表按年分区,分区名称为P+年份(比如2012年分区为P2012),每年数据大概是100万左右,这样我觉得查询速度应该会快一些。由于在报表的SQL里直接把年参数放进去验证不通过,SQL是:SELECT 查询项 FROM MV_GWZBFX_FQ PARTITION(P#prompt('yearcode')#),所以我就考虑用存储过程,存储过程是这样写的:CREATE OR REPLACE PROCEDURE SP_MV_GWZBFX_FQ(V_YEAR VARCHAR2) IS
V_SQL VARCHAR(20000);
BEGIN
V_SQL := 'SELECT 查询项 FROM MV_GWZBFX_FQ PARTITION(P' || V_YEAR || ')';
EXECUTE IMMEDIATE V_SQL;
END SP_MV_GWZBFX_FQ;
在FM中引入存储过程测试时老报错,以前没搞过cognos调用存储过程,请大神们帮忙看看,非常感谢!这步通过了,我才能接着研究后面在报表里怎么用这个存储过程,现在就卡在这了。
收起