linux中oracle的存储过程批量插入数据怎么写,怎么执行
SQL> create procedure rong
2 is
3 begin
4 declare i integer;
5 i=1;
6 loop
7 insert into student_info(id,name,gender,describe,blogsite)values(i,'cuihuanhuan','girl','dddd','baidu.com');
8 i=i+1;
9 exit when i>100;
10 end loop;
11 end;
12 /
Warning: Procedure created with compilation errors.
SQL> show errors
Errors for PROCEDURE RONG:
LINE/COL ERROR
-------- -----------------------------------------------------------------
5/2 PLS-00103: Encountered the symbol "=" when expecting one of the
following:
constant exception <an identifier>
<a double-quoted delimited-identifier> table long double ref
char time timestamp interval date binary national character
nchar
SQL>
SQL> create procedure hui
2 is
3 begin
4 declare i integer;
5 i:=1;
6 loop
7 insert into student_info(id,name,gender,describe,blogsite)values(i,'cuihuanhuan','girl','dddd','baidu.com');
8 i:=i+1;
9 EXIT when i>100;
10 end loop;
11 end;
12 /
Warning: Procedure created with compilation errors.
SQL> show errors
Errors for PROCEDURE HUI:
LINE/COL ERROR
-------- -----------------------------------------------------------------
5/2 PLS-00103: Encountered the symbol "=" when expecting one of the
following:
constant exception <an identifier>
<a double-quoted delimited-identifier> table long double ref
char time timestamp interval date binary national character
nchar
SQL>
这个错误提示到底是什么意思?
在oracle命令行可以使用show errors显示出错的详细信息。
源代码最好不要截图,而是把文本贴上来(编辑区域的工具栏的第5个按钮就是让写源代码的),方便大家看。
上面代码明的错误有几点:
1、j变量没有定义
2、第7行的退出循环语句书写错误,应该是EXIT when j > 100
3、逻辑错误,j变量没有递增赋值,会导致死循环
正确的版本大概是:
create or replace procedure rong
is
i integer;
begin
i := 1;
loop
insert into student_info(id,name,gender,describe,blogsite)values(i,'cuihuanhuan','girl','dddd','baidu.com');
i := i + 1;
exit when i > 100;
end loop;
end;
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。