日期:2014-05-17  浏览次数:21406 次

出现符号"INSERT"在需要下列之一时
存储过程脚本代码如下:
C# code

create or replace procedure "bak_Info_Pro"
      is
      /*--str_sql varchar2(500);*/
      begin
             insert into t_hp_tips_bak select * from t_hp_tips t where t.invalid_date<sysdate;

      /*判断是否插入备份表成功,若成功则删除原表中过期记录
      --execurte immediate str_sql;*/
      
      delete from t_hp_tips t where t.invalid_date<sysdate;
      commit;
Exception
      when others then
              rollback;
      end bak_Info_Pro;




错误提示如下:PROCEDURE HUIFU2.BAK_INFO_PRO 编译错误

错误:PLS-00103: 出现符号 "INSERT"在需要下列之一时:
  ( ; is with authid as
  cluster compress order using compiled wrapped external
  deterministic parallel_enable pipelined
行:5
文本:str_sql:='insert into t_hp_tips_bak select * from t_hp_tips t where t.invalid_date<sysdate';

------解决方案--------------------
你贴的代码和你报错的代码在两个不同的存储过程中,你找对了地方再说。
------解决方案--------------------
create or replace procedure bak_Info_Pro is --过程名不需要用分号引住
/*--str_sql varchar2(500);*/
begin
insert into t_hp_tips_bak
select * from t_hp_tips t where t.invalid_date < sysdate;


/*判断是否插入备份表成功,若成功则删除原表中过期记录
--execurte immediate str_sql;*/

delete from t_hp_tips t where t.invalid_date < sysdate;
commit;
Exception
when others then
rollback;
end bak_Info_Pro;
------解决方案--------------------
探讨

我是刚学oracle的菜鸟。我想问下:insert into 关键字不需要 values关键字的吗?