| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 813 人关注过本帖
标题:求助ORACLE存储过程,懂的进来帮助,谢
取消只看楼主 加入收藏
linweihong
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2008-6-6
收藏
 问题点数:0 回复次数:0 
求助ORACLE存储过程,懂的进来帮助,谢
我有两张表 PDM_Tob     主键:PDM_TobId  
           PDM_Process  主键:Pdm_processid  字段Laminaid(用于存PDM_Top表的PDM_TobId ) 字段FormulaNO

PDM_Tob 有n条数据
现PDM_Process 可能有数据,也可能没数据,且PDM_Process的列FormulaNO数据要求是WW2009000004 ,2009 是当前年年份,000004是流水号。

现需要将PDM_Tob的n条数据插入PDM_Process  

以下是我写的存储过程,但有点错误,请大家帮帮忙,急!!!明天要上机调试。。

create or replace procedure P_LeafProcessSameUpdate
is

v_count int;
v_i int;
v_tag varchar(200);
v_value varchar2(200);
v_len int;

begin
v_i:=1;
select count(*) into  v_count from PDM_Tob  ;   //取出PDM_Tob  具体数据数量

select   FormulaNO   into v_value from PDM_Process
where rownum=1 order by FormulaNO desc;         //将FormulNo 倒序后最大值取出来(这里有点错误,
                                                        就是无值时会出错
)

 if(v_value='') then                            //本意是:没有取到数据便将v_value 设为以下值。
   begin
      v_value:='WF'+to_char(sysdate,'yyyy')+'000001';    //这里可能有错,就是字符到数值转换错误
   end;
  end if;
 
 while v_i<=v_count               //设了循环,一条条数据插入,实在想不出好办法了。
    loop
      insert into PDM_Process(Pdm_processid,Laminaid,FormulaNO)
         select  sys_guid(),PDM_TobId,v_value  from  PDM_Tob   where rownum=v_i ;         
                                                         //rownum=v_i 就是为了取不同的数据
      v_i:=v_i+1;
      v_tag:=v_i;
      v_len:=LENGTH(v_tag);                              //获取v_tag的长度
      while(v_len<=(6-v_len))                            //流水号的操作,不知道有没有好方法
        loop
            v_tag:='0'+v_tag;
            v_len:=v_len+1;
       end loop;
      v_value:= 'WF'+to_char(sysdate,'yyyy')+v_tag      //同样可能会出错
   end loop;

 end P_LeafProcessSameUpdate;



请高手帮帮忙,本机没有安装ORACLE数据库无法调试  谢谢!!!
搜索更多相关主题的帖子: ORACLE 
2009-12-23 21:44
快速回复:求助ORACLE存储过程,懂的进来帮助,谢
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.032841 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved