CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  DB2 >  数据库开发

我的存储过程有什么问题? 怎么也不成功,又看不到原因?盼

楼主mimome(mimome)2003-12-01 12:31:27 在 DB2 / 数据库开发 提问

SET   SCHEMA   AAA           ;  
  SET   CURRENT   PATH   =   "SYSIBM","SYSFUN","AAA";  
   
  CREATE   PROCEDURE   AAA.tempUpdateBarcode   (   )    
      LANGUAGE   SQL  
      NOT   DETERMINISTIC  
      CALLED   ON   NULL   INPUT  
      MODIFIES   SQL   DATA  
   
  P1:   BEGIN  
       
  declare   tmpORGANIZATION_NAME     varchar(50)   ;  
  declare   tmpOUT_DATE   date   ;  
  declare   tmpPRODUCT_TYPE_NAME   varchar(50);  
  declare   tmpPRODUCT_NAME   varchar(50);  
  declare   tmpCONTRACT_NUMBER   varchar(50);  
  declare   tmpBARCODE   varchar(50);  
   
  declare   at_end   int   default   0;  
  declare   not_found   CONDITION   FOR   SQLSTATE   '02000';  
   
   
   
  --定义一个产品游标  
  DECLARE   c1   CURSOR   FOR  
                select   e_boardid    
                    from   AAA_epm.AAA_eq_rprboarditem   ;  
                 
                     
  DECLARE   CONTINUE   HANDLER   FOR     not_found  
   
            select   count(*)   into   at_end  
                    from   AAA_epm.AAA_eq_rprboarditem   ;  
   
        open   c1   ;  
                   
          while   at_end=0   do  
                          fetch   c1   into   tmpBARCODE;  
                           
                          select   out_date   into   tmpOUT_DATE     from           AAA.TMPBARFROM209   where     barcodeid   =tmpBARCODE     ;                  
   
                          select     ORGANIZENAME,    
                                            PRODUCT_TYPE_NAME   ,   PRODUCT_NAME,  
                                            CONTRACT_NUM    
      into     tmpORGANIZATION_NAME,   tmpPRODUCT_TYPE_NAME,   tmpPRODUCT_NAME,   tmpCONTRACT_NUMBER    
                      from       AAA.TMPBARFROMERP  
                      where       BARCODEID   =   tmpBARCODE;  
                           
              update     AAA_epm.AAA_eq_rprboarditem    
                                            set   e_OrganizationName   =   tmpORGANIZATION_NAME,e_OriginSendTime   =   tmpOUT_DATE,  
                E_Productmodel   =   tmpPRODUCT_TYPE_NAME,E_Productitem   =   tmpPRODUCT_NAME   ,E_Contactid   =   tmpCONTRACT_NUMBER  
              where     e_boardid   =   tmpBARCODE;  
                   
        set     at_end   =   at_end-1;      
        end   while;  
         
      close   c1;  
  END   P1;  
   
  #SYNC   10; 问题点数:0、回复次数:1Top

1 楼jkfree(乌鸦大间谍)回复于 2003-12-09 21:54:06 得分 0

CREATE   PROCEDURE   AAA.tempUpdateBarcode   (   out   p_errmsg   varchar(30))    
      LANGUAGE   SQL  
      NOT   DETERMINISTIC  
      CALLED   ON   NULL   INPUT  
      MODIFIES   SQL   DATA  
   
  P1:   BEGIN  
       
  declare   tmpORGANIZATION_NAME     varchar(50)   ;  
  declare   tmpOUT_DATE   date   ;  
  declare   tmpPRODUCT_TYPE_NAME   varchar(50);  
  declare   tmpPRODUCT_NAME   varchar(50);  
  declare   tmpCONTRACT_NUMBER   varchar(50);  
  declare   tmpBARCODE   varchar(50);  
   
  declare   at_end   int   default   0;  
  declare   select_over   char(1)   default   'n';  
  --定义一个产品游标  
  DECLARE   c1   CURSOR   FOR  
                select   e_boardid    
                    from   AAA_epm.AAA_eq_rprboarditem   ;  
                 
                     
  DECLARE   CONTINUE   HANDLER   FOR     not_found  
  begin  
      set   select_over='y';  
  end;  
   
        open   c1   ;                  
          while   select_over='n'   do  
                          fetch   c1   into   tmpBARCODE;  
                           
                          select   out_date   into   tmpOUT_DATE     from           AAA.TMPBARFROM209   where     barcodeid   =tmpBARCODE     ;                  
   
                          select     ORGANIZENAME,    
                                            PRODUCT_TYPE_NAME   ,   PRODUCT_NAME,  
                                            CONTRACT_NUM    
      into     tmpORGANIZATION_NAME,   tmpPRODUCT_TYPE_NAME,   tmpPRODUCT_NAME,   tmpCONTRACT_NUMBER    
                      from       AAA.TMPBARFROMERP  
                      where       BARCODEID   =   tmpBARCODE;  
                          update   AAA_epm.AAA_eq_rprboarditem    
                                            set   e_OrganizationName   =   tmpORGANIZATION_NAME,e_OriginSendTime   =   tmpOUT_DATE,  
                E_Productmodel   =   tmpPRODUCT_TYPE_NAME,E_Productitem   =   tmpPRODUCT_NAME   ,E_Contactid   =   tmpCONTRACT_NUMBER  
              where     e_boardid   =   tmpBARCODE;  
                   
            if   select_over='y'   then  
                set   p_errmsg='未找到数据';  
                rollback;  
            end   if;  
      end   while;        
      close   c1;  
  END   P1;  
  Top

相关问题

  • 为什么存储过程不成功???
  • 如何确定存储过程是否成功执行?
  • 如何判断系统存储过程是否执行成功?????
  • 请教@@error,存储过程是否执行成功的问题!!
  • 怎样判断存储过程是否执行成功
  • 存储过程嵌套循环问题,急盼解决!
  • 存储过程
  • 存储过程
  • 存储过程
  • 存储过程

关键词

  • date
  • tmpproduct
  • c1
  • tmpbarcode
  • aaa
  • tmporganization
  • rprboarditem
  • tmpcontract
  • tmpout
  • epm

得分解答快速导航

  • 帖主:mimome

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo