请考虑以下程序
begin
for i in 0..99
loop
insert into cx_vf_Test_ids values (100+i,'STB','N');
end loop;
commit;
end;
它将按顺序从100到199插入100个值,对于每个值'STB'和'N'将保持相同。
我的要求是插入我从团队中获取的随机值 101,187,193,138,189 ......在这种情况下,我只有100个值,STB和N将保持相同
请提出你的建议。
答案 0 :(得分:0)
create table temp
(
num number(4),
varc varchar(5),
varc1 varchar (5))
;
begin
for i in 0..99
loop
insert into temp values (trunc(dbms_random.value(100,199)),'STB','N');
end loop;
end;
输出:select * from temp;
109 STB N
163 STB N
169 STB N
137 STB N
145 STB N
184 STB N
107 STB N
所以你必须做错事。它在我的SQLDev中完美运行。
答案 1 :(得分:0)
让您的团队将“随机”值插入表中,然后进行插入选择。例如。这样:
create table so58a_t (num number);
insert into so58a_t values (101);
insert into so58a_t values (187);
insert into so58a_t values (193);
insert into so58a_t values (138);
insert into so58a_t values (189);
create table so58b_t (num number, foo varchar2(10), bar varchar2(10));
insert into so58b_t(num, foo, bar)
select
100 + num
,'STB'
,'N'
from so58a_t;
产生结果:
select * from so58b_t order by num;
NUM FOO BAR
---------- ---------- ----------
201 STB N
238 STB N
287 STB N
289 STB N
293 STB N
表也可以是外部表。
答案 2 :(得分:0)
生成带小数的随机数的示例:
DECLARE
N NUMBER;
BEGIN
N := DBMS_RANDOM.VALUE(100, 199);
--Number without deimals
N := TRUNC(N, 0);
-- Print output on screen
DBMS_OUTPUT.PUT_LINE(N);
END;
/