欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

oracle存储过程--循环插入数据

程序员文章站 2022-04-21 09:23:39
...

1、在表account中循环插入数据,id从1001到1005:

create or replace procedure test is    --存储过程,名称为test
  v_id int;   --声明变量
begin
  v_id := 1001;    --ACCOUNT_ID从1001插到1005
  while v_id <= 1005 --设置插入的次数
   loop
    insert into account   --插入语句
      (ACCOUNT_ID,
       USERNAME,
       PASSWORD)
    values
      (v_id,
       '小明' || v_id,
       'b789e083a23eb59c92e1774ebf33e6b3');
    v_id := v_id + 1;   --循环时每次加一
  end loop;
  commit;
end;

2、第一句:create or replace procedure test is代表了这个语句是存储过程,执行完之后,在左侧菜单里能看到刚才的过程名称:test。如果不想提交,则把这个test右键drop掉

oracle存储过程--循环插入数据

3、提交:新建命令窗口command Window,输入exec test后回车,就提交了

备注:普通的insert语句,执行commit语句或者点击执行按钮就提交了。

现在存储过程里面即使有commit语句且执行了,也不是真正的执行。,只是放在test里面,当执行这个test,才是真正的做Inert into和commit操作,又插入又提交。换句话说,倒数第二行的commit语句,只是让他成为了一个完整的不需要人工干预的sql,但是并没有执行,任何操作都没做,当你exec test;操作了,他就开始insert into ,开始commit了

oracle存储过程--循环插入数据

4、问题:我之前按照网上给的,进行循环插入语句,结果各种报错:begin function pragma procedure subtype type <a identifier> <a doble-quoted delimited-identifier> current custor delete exists prior

oracle存储过程--循环插入数据

之后使用存储过程procedure 就好了,存储过程可以不需要declare