日期:2014-05-17  浏览次数:20812 次

问个简单问题,要分的来,在线等答案
今天写了个sql语句
update   sj_yx_zyyx   set   dwdm= '100110011003 ',   tcyy= 'sds ',   cslb1= '1150 ',   cslb2= '1100 ',  
cslb3= '1170 ',   dc= '0.0 ',   yz= '12.0 ',   mxq= '0 ',   sgdwdm= '10204614 ',
  (To_Char)(sxrq, 'yyyy-mm-dd '))= '2007-07-31 ',   zyjd= 'sdssd '   ,   zdgx= ' '   ,   xbgx= ' '  
  ,   to_char(wgrq, 'yyyy-mm-dd ')= '2007-07-31 '   ,   lrsj= '2007-07-31 '   ,   lrr= 'admin ',
    bz= ' ',   mqjb= '11 ',   to_char(jjrq, 'yyyy-mm-dd ')= '2007-08-05 ',  
    to_char(kjrq, 'yyyy-mm-dd ')= '2007-08-01 '   where   jh= 'ST1-1-9 '   and   zyjhid= '2007073134221171 '  
    and   to_char(rq, 'yyyy-mm-dd ')= '2007-07-31 '   and   hbbs= '1 '
在程序里执行的时候,报出
"java.sql.SQLException:   ORA-01858:   在要求输入数字处找到非数字字符 "错误,但是在orcal工具里面能够正常执行
求原因!

------解决方案--------------------
那就要看你的程序是怎么处理的单引号了
------解决方案--------------------
update 语句你组织成java字符串的时候注意以下单引号的使用以及字段数据类型
------解决方案--------------------
看你的sxrq,wgrq,kjrq,rq 等参数输入的时候是否为字符型
如果为字符型,可能要先 to_date 一下吧
看你java程序中是如何输入的了