开发者社区> 问答> 正文

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> 

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

展开
收起
a123456678 2016-06-24 15:38:11 3501 0
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;
    2019-07-17 19:47:03
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
PostgresChina2018_樊文凯_ORACLE数据库和应用异构迁移最佳实践 立即下载
PostgresChina2018_王帅_从Oracle到PostgreSQL的数据迁移 立即下载
Oracle云上最佳实践 立即下载