linux中oracle的存储过程批量插入数据怎么写,怎么运行,我的写法提示错误,附图

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> 




这个错误提示到底是什么意思?

阅读 3.1k
1 个回答

在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;
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题