一个简单的过程

fuyou001 2010-06-22 09:40:57
请教一个简单的过程

有一个表t 有一个字段num1 我要把num1设置从1-100的随机 数,用过程怎么实现

...全文
112 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
luoyoumou 2010-06-22
  • 打赏
  • 举报
回复

declare
cursor c_ur is select rownum from t;
v_rownum number(18,0);
v_num1 t.num1%type;
begin
for r_ur in c_ur loop
select trunc(dbms_random.value(1,101)) into v_num1 from dual; -- 将要更新的数值
v_rownum := r_ur.rownum;
update t set num1 = v_num1 where rownum = v_rownum;
end loop;
commit;
end;
/
luoyoumou 2010-06-22
  • 打赏
  • 举报
回复
create table t(
num1 number(18,0)
);

declare
v_insert_num number(18,0); -- 你想插入记录的条数
v_rand_num number(18,0);
begin
v_insert_num := 100; -- 比如:插入100条记录行
for i in 1 .. v_insert_num loop
select trunc(dbms_random.value(1,101)) into v_rand_num from dual;
insert into t (num1) values(v_rand_num);
end loop;
commit; -- 提交一下
end;
/
fuyou001 2010-06-22
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 luoyoumou 的回复:]
SQL code
declare
v_insert_num number(18,0); -- 你想插入记录的条数
begin
v_insert_num = 100; -- 比如:插入100条记录行
for i in 1 .. v_insert_num
insert into t(num1) select trunc(dbms_random.value(1,101)……
[/Quote]
谢谢,我是想更新记录字段
luoyoumou 2010-06-22
  • 打赏
  • 举报
回复
declare
v_insert_num number(18,0); -- 你想插入记录的条数
begin
v_insert_num = 100; -- 比如:插入100条记录行
for i in 1 .. v_insert_num
insert into t(num1) select trunc(dbms_random.value(1,101)) from dual;
end loop;
end;
/
Phoenix_99 2010-06-22
  • 打赏
  • 举报
回复
用dbms_random.value(1,100)
zjwssg 2010-06-22
  • 打赏
  • 举报
回复
insert into t values (TRUNC(DBMS_RANDOM.value(1,100)));
zjwssg 2010-06-22
  • 打赏
  • 举报
回复
如果只是想构造表的话,没必要用过程吧。
insert into t values (TRUNC(DBMS_RANDOM.value(0,100)));
ngx20080110 2010-06-22
  • 打赏
  • 举报
回复
update plugs_mat set num1= trunc(dbms_random.value(1,101))
where stauts = 200;
fuyou001 2010-06-22
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 luoyoumou 的回复:]
SQL code

declare
cursor c_ur is select rownum from t;
v_rownum number(18,0);
v_num1 t.num1%type;
begin
for r_ur in c_ur loop
select trunc(dbms_random.value(1,101)) into v_num1 fro……
[/Quote]
这个看不懂什么意思 rownum 这个有什么用,为什么用它来做过滤条件

我的更新条件是status = 200
fuyou001 2010-06-22
  • 打赏
  • 举报
回复
declare
v_insert_num number(18,0); -- begin
v_insert_num := 100; -- //更新一百条
for i in 1 .. v_insert_num loop
update plugs_mat set num1= select trunc(dbms_random.value(1,101)) from dual
where stauts = 200;
end loop;
commit
end;

用了4楼兄弟 的,不知道为什么报错

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧