Error: java.sql.SqlException:Invalid column type

Error: java.sql.SqlException:Invalid column type

我已经编写了以下存储过程来测试来自 iReport 设计器的过程调用。

存储过程:

CREATE OR REPLACE PROCEDURE test(cursor1 out sys_refcursor) IS
  BEGIN
    OPEN cursor1 for 
      select person_id,first_name
      from person
      where rownum < 5;
  END; 

在我的查询中 window 我使用以下行来调用此过程。

{call test($P{cursor})}

其中 $P{cursor} 是带有 class java.sql.ResultSet 的参数。

我已将 ojdbc.jar 文件添加到我的 class 路径中,连接也成功了。

当我运行上面的调用存储过程的语句时,它抛出错误:

Error: java.sql.SqlException:Invalid column type

有人能告诉我我做错了什么吗?我应该添加任何文件或对存储过程的调用进行任何更改吗?

问题出在 iReport 字段提取器中。上述问题的解决方案是,我们应该分析我们的存储过程,并在 iReport 设计器中创建具有相同名称的字段,这些字段存在于存储过程的 select 子句中。

创建存储过程后,只需将字段拖放到报表上即可执行。它将显示检索到的数据。

这个解决方案对我有用,所以我与你分享。