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 子句中。
创建存储过程后,只需将字段拖放到报表上即可执行。它将显示检索到的数据。
这个解决方案对我有用,所以我与你分享。
我已经编写了以下存储过程来测试来自 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 子句中。
创建存储过程后,只需将字段拖放到报表上即可执行。它将显示检索到的数据。
这个解决方案对我有用,所以我与你分享。