java调用postgre数据库游标的问题

realfengyuzhe 2006-04-25 01:46:38
困扰好久了,请各位达人帮帮我吧!!
数据库函数,返回一个游标,如下:
DECLARE
ref refcursor;
BEGIN
open ref for select a.id,a.firstname,a.lastname,b.sumworkmin,c.othermin from employee a
left join
(
select employeeid,sum(workmin) as sumworkmin from workreport
where workdate>=$1 and
workdate<($1+(interval '1 month'))
group by employeeid
) as b
on a.id = b.employeeid
left join
(
select employeeid,sum(workmin) as othermin from workreport
where (worktype=0 or worktype=9 or projectid='00000') and
workdate>=$1 and
workdate<($1+(interval '1 month'))
group by employeeid
) as c
on a.id = c.employeeid ;
return ref;
END;


-------------------------------------------------------------
java代码如下:
DBOperator db = null;
Connection conn = null;
ResultSet rs = null;
CallableStatement cs = null;
try {
db = new DBOperator();
conn = db.getConnection();

String sql = "{? = call select_workeff(to_date(?,'YYYY/MM/DD')) }";
cs = conn.prepareCall(sql);
cs.registerOutParameter(1, Types.OTHER);
cs.setString(2, date);
cs.execute();
System.out.println("cs === " + cs);
rs = (ResultSet) cs.getObject(1);
while (rs.next()) {
String userName = rs.getString("firstname") + " "
+ rs.getString("lastname");
.........................
}
}

代码没有贴全,帮我看一下问题出在什么地方啊?愁死我了!!
...全文
271 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
treeroot 2006-04-27
  • 打赏
  • 举报
回复
函数呀?
怎么可以调用函数呢,要调用存储过程。
treeroot 2006-04-27
  • 打赏
  • 举报
回复
"{? = call select_workeff(to_date(?,'YYYY/MM/DD')) }";
可以这样用吗?
realfengyuzhe 2006-04-27
  • 打赏
  • 举报
回复
没有人帮我吗
realfengyuzhe 2006-04-25
  • 打赏
  • 举报
回复
忘了说了,是postgres数据库

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧