关于postgrs数据库存储过程:
存储过程如下:
CREATE FUNCTION dcx_store_9 (puser_id character varying, psite_id character varying, ptime date) RETURNS INTEGER AS $$
DECLARE
exist_time date;
new_day_interval integer;
exist_count integer;
exist_avg integer;
cursorSelect refcursor;
var_integer integer; BEGIN
select * from user_dtl_9 where user_id=puser_id;
IF NOT FOUND THEN
INSERT INTO user_dtl_9 (user_id) VALUES(puser_id);
INSERT INTO user_site_rel_9 (user_id,site_id,count,time)values(puser_id,psite_id,1,ptime);
ELSE
OPEN cursorSelect FOR select time,count,days_avg from user_site_rel_9 where user_id=puser_id and site_id=psite_id;
FETCH cursorSelect INTO exist_time, exist_count, exist_avg;
GET DIAGNOSTICS var_integer = ROW_COUNT;
CLOSE cursorSelect;
IF var_integer > 0 THEN
new_day_interval:=ptime-exist_time;
exist_avg:=(exist_count*exist_avg+new_day_interval)/(exist_count+1);
exist_count:=exist_count+1;
update user_site_rel_9
set count=exist_count,time=ptime,days_avg=exist_avg
where user_id=puser_id and site_id=psite_id;
ELSE
INSERT INTO user_site_rel_9 (user_id,site_id,count,time)
values(puser_id,psite_id,1,ptime);
END IF;
END IF;
RETURN 1;
END $$ LANGUAGE plpgsql;
------------------------------------------------
JDBC调用:user_site_rel_9(?,?,?)
-----------------------------------------------
报如下异常:
org.postgresql.util.PSQLException: ERROR: query has no destination for result data
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1548)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1316)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:191)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:452)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:351)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:344)
...
----------------------------------------------------------
请问达人们帮忙指正,非常感谢