CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Oracle >  基础和管理

◆关于FOR .. IN ..LOOP ◆

楼主wgh166(涌金水牛)2005-11-21 20:44:18 在 Oracle / 基础和管理 提问

CURSOR   cur_d   IS        
              select   *   from   NFCKLST_a  
  ..................................................  
                      FOR   row_set   IN   cur_d   LOOP    
       
                    insert   into   NFCKLST_d   VALUES(    
                                                  row_set.ACCATRBT,    
                                                  row_set.ACCNO,    
                                                  row_set.CURRTYPE,    
                                                  row_set.LSTPRTB,    
                                                  row_set.BUSIDATE,    
                                                  row_set.AMOUNT,    
  ..............................................  
  )  
   
  ====================================================  
   
  NFCKLST_a和NFCKLST_d结构完全一致,字段有很多,每个列举很麻烦。  
   
  是否有省略的写法?  
  例如:insert   into   NFCKLST_d   VALUES(   row_set.*)     --当然我知道这样不行  
  问题点数:20、回复次数:5Top

1 楼zzwind5(★★★★★)回复于 2005-11-21 20:54:39 得分 20

declare  
      CURSOR   cur_d   IS   select   *   from   NFCKLST_a;  
      tab       cur_d%rowtype;  
  begin  
        open   cur_d;  
        loop  
              exis   when   cur_d%notfound;  
                insert   into   NFCKLST_d  
                  values   tab;  
        end   loop;  
        close   cur_d;  
  end;  
   
  ORACLE   9i   以上版本支持这种用法Top

2 楼zzwind5(★★★★★)回复于 2005-11-21 20:55:52 得分 0

漏   fetch   into   了  
  declare  
  CURSOR   cur_d   IS   select   *   from   NFCKLST_a;  
  tab   cur_d%rowtype;  
  begin  
  open   cur_d;  
  loop  
  fetch   cur_d   into   tab;  
  exis   when   cur_d%notfound;  
  insert   into   NFCKLST_d  
  values   tab;  
  end   loop;  
  close   cur_d;  
  end;Top

3 楼wgsasd311(自强不息)回复于 2005-11-22 09:13:14 得分 0

NFCKLST_a和NFCKLST_d结构完全一致,字段有很多,每个列举很麻烦。  
   
  是否有省略的写法?  
  ========>当然有了。  
   
                    insert   into   NFCKLST_d     values   row_setTop

4 楼sbaz(万神渡劫)回复于 2005-11-22 11:21:57 得分 0

insert   into   NFCKLST_d      
  select   *   from   NFCKLST_a  
  Top

5 楼wgh166(涌金水牛)回复于 2005-11-23 19:22:59 得分 0

wgsasd311(自强不息)\sbaz(万神渡劫)   ()   信:  
        这个我知道啊!关键是cur_d   不是如此简单的东西,否则不用写存储过程了。  
   
   
  V_name   char(10);  
  V_Accno   char(13);  
  V_Start   Date;  
  V_End   DAte;  
   
  CURSOR     cur_d     IS                  
                        select     *     from     NFCKLST_a      
                        where   account=V_accno   and   name   like   V_name    
                          and   date   between   V_Start   and   V_End  
  ......................................................  
  Top

相关问题

  • Recursive Loop
  • do until .....loop
  • do while ... loop
  • 请教mount loop
  • FOR-Loop variable 'k' may be undefined after loop是什么错?有什么问题?
  • 请问什么是 loop文件系统 ?
  • VB中do until ......loop 语句的问题
  • 请叫如何暂停DO ... LOOP。
  • loop缺少do,什么意思啊?
  • break loop在c++里面不行吗?

关键词

  • date
  • nfcklst
  • cur
  • accno
  • loop
  • row
  • tab
  • cursor
  • insert
  • set

得分解答快速导航

  • 帖主:wgh166
  • zzwind5

相关链接

  • Oracle类图书

广告也精彩

反馈

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