暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 插入随机值

askTom 2017-09-12
279

问题描述

嗨,汤姆,

创建表格 “详细信息”
(“ID” 编号 (30,0),
“名称” VARCHAR2(30字节),
“否” 号 (30,0)
);

声明
数字;
开始
对于我在1 .. 2500循环
l_num := dbms_random.Value(1,2500);
插入细节 (no) 值 (l_num);

结束循环;
结束;

声明
数字;
开始
对于我在1 .. 500000循环
l_num := dbms_random.Value(1,500000);
-- 插入细节 (sno,name) 值 (l_num,');
插入详细信息 (id,名称) 值 (l_num,'Bhogesh');
结束循环;
结束;

在第一个脚本中,我将25000的随机数值插入到 “否” 列的详细信息表中。
在secon脚本中,我再次将5个,00,000个随机值和 “Bhogesh” 插入id,name
详细信息表。但我没有id coulmn的2500记录后的任何数字,我需要选择那些现有的25000没有列值,并且需要更新其余记录的明细表,2500没有列值。

请帮助。

专家解答

抱歉,我不确定我是否明白。我猜你想要:

5,000,000行

-id = 1到500000之间的随机数
-名字 = 博格什
= no = 1到2500之间的随机数

所以你可以这样做:

insert into details
select 
  trunc(dbms_random.Value(1,500000)),
  'Bhogesh',
  trunc(dbms_random.Value(1,2500))
from 
( select 1 from dual connect by level <= 5000 ),
( select 1 from dual connect by level <= 1000 )


注意 “随机” 并不等同于 “唯一”
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论