linux中oracle的存储过程批量插入数据怎么写,怎么运行,我的写法提示错误,附图-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

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

a123456678 2016-06-24 15:38:11 1951

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 关系型数据库 Linux
分享到
取消 提交回答
全部回答(1)
  • a123456678
    2019-07-17 19:47:03

    在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;
    0 0
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

推荐文章
相似问题