declare q1 number :=100; q2 number :=110; q3 number :=910; begin for q1 in 100..120 loop for q2 in 110..130 loop for q3 in 910..890 loop insert into s_emp(id,userid,last_name) values (q1,q2,q3); end loop; end; /帮我改一下
不太清楚你想要改成什么样子,以下是一些可能的修改:
- 如果你只是想让代码能够成功执行,可以将 q3 的范围改为 890..910,因为这个范围是递减的,所以循环不会执行:
declare q1 number :=100; q2 number :=110; q3 number :=910; begin for q1 in 100..120 loop for q2 in 110..130 loop for q3 in 910..890 loop insert into s_emp(id,userid,last_name) values (q1,q2,q3); end loop; end loop; end loop; end;
- 如果你想要随机生成 q1、q2、q3 的值,可以使用 DBMS_RANDOM 包:
declare q1 number; q2 number; q3 number; begin for i in 1..100 loop q1 := round(dbms_random.value(100, 120)); q2 := round(dbms_random.value(110, 130)); q3 := round(dbms_random.value(890, 910)); insert into s_emp(id,userid,last_name) values (q1,q2,q3); end loop; end;
- 如果你想要将 q1、q2、q3 的值按照某种规则生成,可以使用 PL/SQL 的语言特性:
declare q1 number :=100; q2 number :=110; q3 number :=910; begin for i in 1..100 loop q1 := q1 + 1; q2 := q2 + 2; q3 := q3 - 1; insert into s_emp(id,userid,last_name) values (q1,q2,q3); end loop; end;
原文地址: https://www.cveoy.top/t/topic/mwz 著作权归作者所有。请勿转载和采集!