十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
Oracle是支持For语法的,只是跟java里面的有点差异 while 改为 FOr
会同网站建设公司创新互联公司,会同网站设计制作,有大型网站制作公司丰富经验。已为会同成百上千提供企业网站建设服务。企业网站搭建\外贸营销网站建设要多少钱,请找那个售后服务好的会同做网站的公司定做!
for i in 1..10 loop
for i in 1..10 loop
dbms_output.put_line(to_char(i)||to_char(n));
end loop;
end loop;
写循环的操作方法和步骤如下:
1、第一步,编写存储过程的整体结构,然后定义变量,见下图。
2、其次,完成上述步骤后,在定义变量后定义游标,begin,select sysdate into v_date from dual,end test_proc,如下图所示。
3、接着,完成上述步骤后,写一个for循环,游标开始for循环,为临时变量名任意起个名,输出一个字段,使用变量名.列名就好了,最后游标for循环就结束了,如下图所示。
4、最后,完成上述步骤后,试运行,单击“
DBMS Output”选项卡进行检查,运行成功,见下图。这样,问题就解决了。
写大了我这也没事啊,刚测试了一下
create table orders (id int);
CREATE SEQUENCE seq_orders
INCREMENT BY 1
START WITH 1
NOMAXVALUE
NOCYCLE
CACHE 10;
存储过程就是你的那个,是不是你序列建的有问题啊
--while循环
procedure loop_while
(
start_value in number,
end_value in number
)
is
current_value number := start_value;
begin
while current_value =end_value
loop
dbms_output.put_line('now number:' || current_value);
current_value:=current_value+1;
end loop;
end loop_while;
create or replace procedure test_procedure is
--a表游标定义
cursor a_cursor is
select id from a;
--b表游标定义
cursor b_cursor(aid number) is
select id from b where b.id = aid;
begin
for a_cur in a_cursor loop
for b_cur in b_cursor(a_cur.id) loop
--这里是你要执行的操作,比如insert到c
insert into c values (b_cur.id);
commit;
end loop;
end loop;
语法是这样的,具体字段自己改一下,看你要做什么样的操作了但如果是这种插入到一张表逻辑过于简单,可以直接用等值连接。