本帖最后由 lujianweisa 于 2010-06-17 14:45:29 编辑

解决方案 »

  1.   

    主体改成这样试一下吧。sqlArchStr:='update tablename set myTime=:1 where id=:2';
    EXECUTE   IMMEDIATE  sqlArchStr using outTime ,myid 
      

  2.   

    1:不要这么多BEGIN END
    2:加dbms_output.put_line(sqlArchStr);打印出你的组合SQL,,,,,单独执行,看类型是否匹配...
      

  3.   

    我像你那么改了之后编译成功但是测试调用的时候  提示 
    文字与格式字符串不匹配
    exec OutArch('2005-1-13')咋个意思
      

  4.   

    sqlArchStr:='update tablename set myTime=to_date('''||outTime||''','yyyy-mm-dd') where id='||myid;
    试试,转换为日期类型...
      

  5.   

    不用变量绑定的话,可以改成下面那样create or replace procedure OutArch
    (outTime in date,myid in varchar2) is
    sqlArchStr varchar2(1000);
    begin
      begin
        sqlArchStr:='update tablename set myTime=to_date('''||outTime||''','''yyyy-mm-dd''') where id='''||myid||'''';  EXECUTE   IMMEDIATE  sqlArchStr;
      end;end OutArch;exec OutArch('2005-1-13','[myid]');
      

  6.   

    你调用时,要改成
    exec OutArch(to_date('2005-1-13','yyyy-mm-dd'), '第二个参数值')
    另外,你应该还有第二个参数吧?!