存储过程插入数据的时候有一列叫mumber 这个列的值呢是随机的 1000-2000之间
还有一列是随机获得另外一张表的列
比如A 用户表 id username mumber ClassNUmber(班级编号)
班级表 B ClassNUmber用存储过程循环插入用户表的时候 ,A表的ClassNUmber从班级表获得随机ClassNUmber
存储

解决方案 »

  1.   

    insert into a
    select id,username,round(dbms_random.value(1000,2000)),
    (select ClassNUmber  from (select ClassNUmber from b order by dbms_random.random) b1 where rownum=1)
    from tab_name;  
      

  2.   

    这个 where rownum=1是说明每次只取一条吗 看懂了 你真牛 谢谢
      

  3.   

    看懂你的代码了 我想定义一个变量来接受select ClassNUmber  from (select ClassNUmber from b order by dbms_random.random) b1 where rownum=1 怎么搞 今天刚碰oracle 
      

  4.   

    ClassNUmber  varchar2;
    ClassNUmber  :=select ClassNUmber  from (select ClassNUmber from b order by dbms_random.random) b1 where rownum=1
    就是我觉得以后如果写多了 都写在一起可能可读性不太好 所以我想可以不可以把那个分开了写呢 大哥 请教下
    加分没问题http://bbs.csdn.net/topics/
      

  5.   

    能用一条SQL解决的尽量用一条解决,若是解决不了可以考虑用存储过程
    变量赋值可以用在过程语句中,语法如下:
    select ClassNUmber  into var_num from ......
      

  6.   

    a表用oracle的随机数函数SELECT trunc(dbms_random.value(88,100)) FROM dual,
    后面的用触发器是比较正常的选择。
      

  7.   

    彻底解决了 谢谢
    现有的需求是 2个字段的值是 随机200-500和500-1000 KO
    获得一个表的随机列的值 KO
    最后一个就是时间 从1999-01-01到2013-07-01中获取随机一天;(周末和周日除外)
    我是用存储过程写的 用哪个函数可以实现获得非礼拜六和礼拜天的时间呢 to_date还是to_char函数呢