大家好:
     现在我使用ADO连接oracle数据库,然后要向数据库的日期字段中插入日期,经过网上的搜索,得到下面的sql:     sql="insert into isp_cxl_test(id,name,in_date) values (5,'gah',to_date('20131223','yyyymmdd'));";
     然后调用m_ptrConnection->Execute函数执行。
     但是我执行这条sql的时候还是报错:invalid character   请问是不是程序中不支持to_date函数?还是什么原因呢?

解决方案 »

  1.   

    直接在数据库中执行insert into isp_cxl_test(id,name,in_date) values (5,'gah',to_date('20131223','yyyymmdd')); 看是不是有问题 或者去掉字符串中的多余的分号(;)试试。
      

  2.   

    insert into isp_cxl_test(id,name,in_date) values (5,'gah',to_date('20131223','yyyymmdd'));分号去掉看看
      

  3.   

    应该就是多了那个分号
    sql="insert into isp_cxl_test(id,name,in_date) values (5,'gah',to_date('20131223','yyyymmdd'));";
      

  4.   

    sql="insert into isp_cxl_test(id,name,in_date) values (5,'gah',date'2013-12-23');";
      

  5.   

    这句sql是传递给oracle执行的,不是你的调用程序(C#)中执行的,
    所以不存在你说的程序中不支持to_date()函数问题。
    应该是单引号(')的问题,你将你的sql语句重新拼接一下,在有单引号的地方断开:sql="insert into isp_cxl_test(id,name,in_date) values (5,'"+gah+"',to_date('"+20131223"','"+yyyymmdd"'));";
    gah:程序中你可以传入的name值(字符串);
    20131223:你可以传入的日期参数值;
    yyyymmdd:你可传入的日期格式参数。