“索引中丢失 IN 或 OUT 参数”问题解决办法

问题描述

         最近有客户遇到存储过程做数据集的报表发布后报错:产生数据工厂: com.runqian.report4.dataset.ProcDataSetFactory 失败错误来源:: 索引中丢失 IN 或 OUT 参数:: 1 错误来源:索引中丢失 IN 或 OUT 参数:: 1

问题分析

         出现这个问题的原因可以有如下几个:

1、  存储过程本身就不正确

2、  数据集输出参数位置不正确

3、  数据库驱动有问题

4、  reportConfig.xml文件中数据库类型不正确

 

排查步骤

         遇到该问题,可以按照如下步骤排查:

一、让客户在数据库端执行存储过程,若不能正常执行,则说明是问题1引起;

 

二、查看报表存储过程数据集输出参数位置,需保证“输出参数”位置在第一位,如下图:


 

三、若在设计器中可以正常预览,但在自己的应用中报错,需将报表设计器下的数据库驱动拷贝到自身应用中,并将原来的驱动删除。该驱动位置在${设计器安装目录}\jdbc下:如D:\Program Files\reportHome\jdbc。

 

四、情况同三,若更换驱动后仍未解决就需要检查应用中的reportConfig.xml文件,查看其中的数据源配置处数据库类型是否有误。如有的客户这样配置:

    <config>

    <name>dataSource</name>

     <value>itacms,itacms,1,iso-8859-1,GBK,0</value>

       </config>

         这显然是不正确的,所以需要将第二个itacms修改为oracle。关于这个选项的说明见下图:


 

         基本上通过如上排查方法即可解决该问题。 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值