ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 用PL/SQL更新拓扑点属性

用PL/SQL更新拓扑点属性

原创 Linux操作系统 作者:houdan522 时间:2008-04-17 12:40:27 0 删除 编辑
create or replace procedure LINESET_UPDATE is
   V_NODEID point.NODEID%type;
   V_LINEID line.lineid%type;
   V_LINESET point.lineset%type;
   T NUMBER :=0;
   cursor C_NODEID is select NODEID from point;
   cursor C_LINEID(V_NODEID point.NODEID%type) is select LINEID from line where fnode=V_NODEID or tnode=V_NODEID;
   cursor NUM_LINEID is select count(LINEID) from line where fnode=V_NODEID or tnode=V_NODEID;
begin
  V_NODEID:=0;
  V_LINEID:=0;
  <>
   open C_NODEID;
   LOOP
    fetch C_NODEID into V_NODEID;
    EXIT WHEN C_NODEID%NOTFOUND;
      OPEN NUM_LINEID;
      FETCH NUM_LINEID INTO T;
      if T=0 then
         insert into nodeid_error values(V_NODEID);
      elsif T=1 then
          open C_LINEID(V_NODEID);
          fetch C_LINEID INTO V_LINEID;
          close C_LINEID;
          update point set lineset=V_LINEID where nodeid=V_NODEID;
      else
         <>
         open C_LINEID(V_NODEID);
         fetch C_LINEID into V_LINEID;
         while C_LINEID%FOUND LOOP
                V_LINESET:=LTRIM(V_LINESET||','||V_LINEID,',');
         fetch C_LINEID into V_LINEID;
         end loop loop_2;
         close C_LINEID;
         update point set lineset=V_LINESET where nodeid=V_NODEID;
         V_LINESET:='';
       end if;
       close NUM_LINEID;
      T:=0;
      V_NODEID:=0;
     
    end loop loop_1;
    CLOSE C_NODEID;
  
     
end LINESET_UPDATE;

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/8720638/viewspace-240047/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-04-16

  • 博文量
    16
  • 访问量
    19012