sdate date:=sysdate;
或者
sdate date:=to_date('2004-10-10','yyyy-mm-dd');
....
strsql:='INSERT INTO b(fd_dovou_date ) values(sdate)';   <--这里是变量
execute immediate strsql;

解决方案 »

  1.   

    sdate我是从数据库里查询出来的,要怎样改啊?
      

  2.   

    .....
    sdate date;
    begin
    ...
    strsql:='select fd_dovou_date from tb_a where..';
    execute immediate strsql into sdate;--fd_dovou_date是date类型的 
    strsql:=' begin INSERT INTO b(fd_dovou_date ) values  ('||sdate||') end;';
    execute immediate strsql;<--插入出错,需要to_date()转换吗?....
    end;
    /
      

  3.   

    strsql:=' begin INSERT INTO b(fd_dovou_date ) values  ('||sdate||');  end;';
      

  4.   

    Warning: ociexecute(): OCIStmtExecute: ORA-00917: 缺少逗号 ORA-06512: 在"TEST.PRO_PZ_SEND", line 81 ORA-06512: 在line 1 in C:\Program Files\Apache Group\Apache2\htdocs\banking\ck\pz_send.php on line 34
      

  5.   

    这一行:
    strsql:='select fd_dovou_date into :sdate from tb_a where..;改为把冒号去掉
    strsql:='select fd_dovou_date into sdate from tb_a where..;
      

  6.   

    我知道答案了
    修改成
    ....values('''||sdate||''')就可以了