create or place procedure aa(time1 in varchar2,time2 in varchar2)
 is
 v_time1 varchar2(100);
 v_time2 varchar2(100);
 c_c integer;
 c_sql varchar2(500);
 c_r integer;
 v_time1:=to_date(time1,'yyyymmdd');
 v_time2:=to_date(time2,'yyyymmdd');
 c_sql:='insert into a1 select * from b1 where date_time>='||v_time1||' and date_time<='||v_time2;
 c_c:=dbms_sql.open_cursor;
 dbms_sql.parse(c_c,c_sql,dbms_sql.native);
 c_r:=dbms_sql.execute(c_c);
 dbms_sql.close_cursor;
 
end ;出现问题是SQL语句未结束,条件里的时间判断应该如果写呢。 c_sql:='insert into a1 select * from b1 where date_time>='||v_time1||' and date_time<='||v_time2;
谢谢!!!

解决方案 »

  1.   

    create or place procedure aa(time1 in varchar2,time2 in varchar2)
     is
     v_time1 varchar2(100);
     v_time2 varchar2(100);
     c_c integer;
     c_sql varchar2(500);
     c_r integer;
     v_time1:=to_date(time1,'yyyymmdd');
     v_time2:=to_date(time2,'yyyymmdd');
     c_sql:='insert into a1 select * from b1 where date_time>='''||v_time1||''' and date_time<='''||v_time2||'''';
     c_c:=dbms_sql.open_cursor;
     dbms_sql.parse(c_c,c_sql,dbms_sql.native);
     c_r:=dbms_sql.execute(c_c);
     dbms_sql.close_cursor;
    end ;这样
      

  2.   

    楼上的正解!!
    place 要改为replace