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

传参数生成多条数据的过程怎么写?

楼主thinbug(thinbug)2005-04-02 13:20:59 在 Oracle / 开发 提问

表tpiao  
  numID       myTxT  
  AX0998     "asdf"  
  AX0999     "xxxx"  
   
  例如要生成   AX1000   到   AX2000   的号码(1000条数据)到表TPIAO里  
  create   or   replace   procedure   newdata(tmp1   varchar2,tmp2   varchar2,tmp3   varchar2)  
    is  
  begin  
      //tmp1="AX"  
      //tmp2="1000"  
      //tmp3="2000"  
      //inserto   into   tpiao   numID=tmp1+tmp2   一直到tpiao   numID=tmp1+tmp3   ;  
      select   *   from   tpiao   ;          
  end    
   
   
  怎么写,刚开始学习.  
  问题点数:50、回复次数:5Top

1 楼yejianwind(啸风)回复于 2005-04-02 14:24:45 得分 50

create   or   replace   procedure   newdata(tmp1   varchar2,tmp2   varchar2,tmp3   varchar2)  
    AS  
      V_TMP1   NUMBER;  
      V_TMP2   NUMBER;  
      I   NUMBNER;  
  begin  
      V_TMP1:=TO_NUMBER(tmp2);  
      V_TMP2:=TO_NUMBER(tmp3);  
      FOR   I   IN   V_TMP1..V_TMP2   LOOP  
          insert   into   tpiao(numID,AX0998,AX0999)     VALUES(tmp1||TO_CHAR(I),"asdf","xxxx");  
      LOOP;  
   
   
  END;Top

2 楼thinbug(thinbug)回复于 2005-04-02 14:45:54 得分 0

哦,如果发生数据库已经有某条数据了,如何作到让这个操作不执行,或者忽略掉Top

3 楼thinbug(thinbug)回复于 2005-04-02 15:06:29 得分 0

tmp1='10000';  
  tmp2='20000';  
  tmp3   =   tmp1   +   tmp2   就出错了,有合并字符串的函数?Top

4 楼yejianwind(啸风)回复于 2005-04-02 15:16:32 得分 0

合并字符串用   ||   tmp3=tmp1||tmp2  
   
  忽略的话你加一个判断语句了  
   
  CREATE   OR   REPLACE   PROCEDURE   newdata(tmp1   VARCHAR2,tmp2   VARCHAR2,tmp3   VARCHAR2)  
    AS  
      V_TMP1   NUMBER;  
      V_TMP2   NUMBER;  
      I   NUMBER;  
      I_COUNT   NUMBER;  
  BEGIN  
      V_TMP1:=TO_NUMBER(tmp2);  
      V_TMP2:=TO_NUMBER(tmp3);  
      FOR   I   IN   V_TMP1..V_TMP2   LOOP  
          SELECT   COUNT(1)   INTO   I_COUNT   FROM     tpiao   WHERE   NUMID=tmp1||TO_CHAR(I);  
  IF   I_COUNT=0   THEN  
                  INSERT   INTO   tpiao(numID,AX0998,AX0999)     VALUES(tmp1||TO_CHAR(I),"asdf","xxxx");  
  END   IF;  
      END   LOOP;  
   
   
  END;  
  Top

5 楼thinbug(thinbug)回复于 2005-04-02 15:21:14 得分 0

那如果出现重复,我如何取消前面所做的操作?  
   
  事务处理?不知道是什么格式,写在哪里?Top

相关问题

  • 如何把参数传到数据库的存储过程中生成sql语句的执行?
  • 如何用存储过程直接生成数据窗口
  • 数据源为存储过程的datawindow怎么传递参数?
  • 在存储过程中我想用数据库名做参数?
  • 多层数据库存储过程参数传递的问题
  • .net,大数据量,存贮过程,参数,速度,麻烦....
  • ???[求助]SQL存储过程输入参数的数据类型???
  • VS2005用存储过程参数化绑定数据的问T。
  • EXECUTE调用存储过程,参数来源于表数据
  • 分页存储过程如何再生成总数和总页数返回参数?

关键词

  • mp3
  • 数据
  • tmp
  • tpiao
  • numid
  • ax
  • varchar
  • procedure newdata
  • number
  • createor replace

得分解答快速导航

  • 帖主:thinbug
  • yejianwind

相关链接

  • Oracle类图书

广告也精彩

反馈

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