sqlArchStr:='update tablename set myTime=to_date('''||outTime||''','yyyy-mm-dd') where id='||myid; 试试,转换为日期类型...
不用变量绑定的话,可以改成下面那样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]');
EXECUTE IMMEDIATE sqlArchStr using outTime ,myid
2:加dbms_output.put_line(sqlArchStr);打印出你的组合SQL,,,,,单独执行,看类型是否匹配...
文字与格式字符串不匹配
exec OutArch('2005-1-13')咋个意思
试试,转换为日期类型...
(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]');
exec OutArch(to_date('2005-1-13','yyyy-mm-dd'), '第二个参数值')
另外,你应该还有第二个参数吧?!