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掉
3、提交:新建命令窗口command Window,输入exec test后回车,就提交了
备注:普通的insert语句,执行commit语句或者点击执行按钮就提交了。
现在存储过程里面即使有commit语句且执行了,也不是真正的执行。,只是放在test里面,当执行这个test,才是真正的做Inert into和commit操作,又插入又提交。换句话说,倒数第二行的commit语句,只是让他成为了一个完整的不需要人工干预的sql,但是并没有执行,任何操作都没做,当你exec test;操作了,他就开始insert into ,开始commit了
4、问题:我之前按照网上给的,进行循环插入语句,结果各种报错:begin function pragma procedure subtype type <a identifier> <a doble-quoted delimited-identifier> current custor delete exists prior
之后使用存储过程procedure 就好了,存储过程可以不需要declare
上一篇: FAST迅捷路由器设置详细教程