roseey
发贴: 2
积分: 0
|
于 2006-10-13 10:23
CREATE OR REPLACE FUNCTION getcq() RETURNS void AS $func$ DECLARE referrer_key RECORD; -- 声明一个在 FOR 里用的通用的记录 gcid text; gcname text; manager text; pactdep text; builddep text; depnum numeric; did text; jhkgdate date; jhjgdate date; sjkgdate date; isjcjd text; cqnum int; mark text; rec record; BEGIN
FOR referrer_key IN SELECT a.*,b.depname,c.jhkgdate,c.jhjgdate,c.sjkgdate FROM t_info_gcxx a,t_info_department b,t_info_neiye c where a.depnum=b.depnum and a.gcid=c.gcid and current_date>=c.jhjgdate+2 and c.jgsq is null ORDER BY a.id LOOP select into did,mark id,mark from t_jc_jindu where gcid=referrer_key.gcid and cqts>0; IF not FOUND THEN did:='null'; --给变量赋值 isjcjd:='否'; ELSIF mark='2' then continue; --什么也不做 ELSIF mark='1' then isjcjd:='是'; --给变量赋值 END IF; gcid:=quote_literal(referrer_key.gcid); --给各变量赋值 gcname:=quote_literal(referrer_key.gcname); manager:=quote_literal(referrer_key.manager); pactdep:=quote_literal(referrer_key.pactdep); builddep:=quote_literal(referrer_key.builddep); depnum:=referrer_key.depnum; jhkgdate:=referrer_key.jhkgdate; jhjgdate:=referrer_key.jhjgdate; sjkgdate:=referrer_key.sjkgdate; cqnum:=jhjgdate-jhkgdate-2;
insert into t_tep_jdcq values(nextval('t_tep_jdcq_id_seq'),gcid,gcname,manager,pactdep,builddep,depnum,did,jhkgdate,jhjgdate,sjkgdate,isjcjd,cqnum); END LOOP; END; $func$ LANGUAGE plpgsql;
select getcq(),* from t_tep_jdcq;
为什么最后在t_tep_jdcq表中会什么都没有???而且也不报错!
|