Java开发网 Java开发网
注册 | 登录 | 帮助 | 搜索 | 排行榜 | 发帖统计  

您没有登录

» Java开发网 » Database/JDBC/SQL/JDO/Hibernate  

按打印兼容模式打印这个话题 打印话题    把这个话题寄给朋友 寄给朋友    该主题的所有更新都将Email到你的邮箱 订阅主题
flat modethreaded modego to previous topicgo to next topicgo to back
作者 菜鸟在postgresql中用pl/pgsql语言写的函数,请高手指点!在线等!!
roseey





发贴: 2
积分: 0
于 2006-10-13 10:23 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
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表中会什么都没有???而且也不报错!



作者 Re:菜鸟在postgresql中用pl/pgsql语言写的函数,请高手指点!在线等!! [Re:roseey]
hisongshuo





发贴: 1
积分: 0
于 2006-10-21 10:24 user profilesend a private message to usersearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
是不是有这种可能
PL里select语句只能返回一行记录。
select into did,mark id,mark from t_jc_jindu where gcid=referrer_key.gcid and cqts>0;
这里能不能保证,因为你的 select以后灭有into,所以不会抱错的。




flat modethreaded modego to previous topicgo to next topicgo to back
  已读帖子
  新的帖子
  被删除的帖子
Jump to the top of page

   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923