当前位置: 代码迷 >> Oracle开发 >> ORACLE存储过程执行异常
  详细解决方案

ORACLE存储过程执行异常

热度:28   发布时间:2016-04-24 07:26:10.0
ORACLE存储过程执行错误
SQL code
create or replacePROCEDURE DIM_TIME_PROC(    start_date IN VARCHAR2,      end_date IN VARCHAR2 )AS --定义变量 begin_time DATE;            --开始时间end_time DATE;              --结束时间dim_date DATE;              --中间变量--i NUMBER;                   --计数器date_flag NUMBER;          --会计区间值 本例取15 天--vs_msg VARCHAR2(4000);     --错误信息变量--fmon_type VARCHAR2(20);     --财务月类型BEGIN--fmon_type = FMONTH_TYPE;begin_time := to_date(start_date,'yyyymmdd');end_time := to_date(end_date,'yyyymmdd'); date_flag := to_number(end_time - begin_time);IF date_flag < 0 THENBEGINdbms_output.put_line('输入有误,结束日期必须大于开始日期,请重新输入');END;ELSE BEGINdim_date := begin_time;while end_time >= begin_time LOOPBEGININSERT INTO dim_time(DAYKEY )VALUES(to_char(dim_date,'yyyymmdd'));                 dim_date := dim_date + 1;END;end loop; END;END IF;END DIM_TIME_PROC;


错误:


ORA-06550: 第 1 行, 第 7 列: 
PLS-00103: 出现符号 "PROCEDURE"在需要下列之一时:
 ( begin
  case declare exit for goto if loop mod null pragma raise
  return select update while with <an identifier>
  <a double-quoted delimited-identifier> <a bind variable> <<
  continue close current delete fetch lock insert open rollback
  savepoint set sql execute commit forall merge pipe purge
符号 "PROCEDURE" 被忽略。
06550. 00000 - "line %s, column %s:\n%s"
*Cause: Usually a PL/SQL compilation error.
编译没有错 执行的时候出错,可能是逻辑上有问题吧,小弟菜鸟级别的...请各位高手指点.

------解决方案--------------------
SQL code
--你寫了個死循環while end_time >= begin_time --應改為while end_time >= dim_date
------解决方案--------------------
貌似不是 过程的问题,我把那段代码放在SQL*PLUS里执行成功了的,可能是sql developer 设置的问题吧?。。
  相关解决方案