如题,可以确保的是字符串中没有任何的中文.
查看了一些资料都不而得之.
使用ALTER SESSION SET NLS_LANGUAGE=AMERICAN
也没有好好的解决.有没有高手出来解答一下小弟的问题.

解决方案 »

  1.   

    在PLSQL中用FOR UPDATE的方法直接改的.
      

  2.   

    这个数据库端执行是可以的,只是使用PLSQL用FOR UPDATE的方法就会出错.而且原数据的长度已经为.1500左右.
      

  3.   

    FOR UPDATE的语句贴出来看看
    目标表有过用了别名把别名去掉试试
    如果数据中有特殊符号看看是不是需要转换
      

  4.   

    pkg com.sinocc.pm.ecmman.CPCECNFunc.doupdatecpcdrawingparamsins(<objid>)  
    pkg com.sinocc.docmanager.CPCDocWFFunc.mergeDocNoSynModel("select distinct olddrawid || '_' ||oldrev targetdocid,newdrawid || '_' || newrev  historydocid,2 as mergetype,1 as keeptwfobj,usesourcedocname from cpcecndrawline where olddrawid<>'0' and drawoperation=1 and  cpcecndrawline.ecnid in (select ecnid from cpcecn where wfid=<wfid>)")  
    update cpcecndrawline set newdrawid=docid,newrev=rev,newdrawname=docname from cpcdoc where  cpcdoc.docid=cpcecndrawline.olddrawid and cpcecndrawline.ecnid in (select ecnid from cpcecn where wfid=<wfid>) and olddrawid<>newdrawid and olddrawid<>0 and  drawoperation=1   
    pkg com.sinocc.psmanager.intf.CPCPdmIntfWfFunc.drawintf("select b.olddrawid objid,b.oldrev objrev,6 reftype,a.newdrawid refid,a.newrev refrev,1 as act from  cpcecndrawline a, cpcecndrawline b where  a.ecnid=b.ecnid and a.superitemid=b.drawitemid and a.drawoperation=2 and a.ecnid in (select ecnid from cpcecn where wfid=<wfid>) union select b.olddrawid objid,b.oldrev objrev,6 reftype,a.olddrawid refid,a.oldrev refrev,2 act from  cpcecndrawline a,cpcecndrawline b where  a.ecnid=b.ecnid and a.superitemid=b.drawitemid and a.drawoperation in (3,8) and a.ecnid in (select ecnid from cpcecn where wfid=<wfid>)")  
    pkg com.sinocc.pm.ecmman.CPCECNFunc.doupdatedrawid(<objid>)
      

  5.   

    ORA-01480: trailing null missing from STR bind value 
    Cause: A bind variable of type 5 (null-terminated string) does not contain the terminating null in its buffer.
    Action: Terminate the string with a null character
      

  6.   

    恩就是这个错误出现就是字符串过长.PLSQL会自动的进行截取.截取的时候找不到结束符才出的这种错误
      

  7.   

    把update语句写成一个sql文件,然后在PLSQL中 start一下试试。
    或者用sqldeveloper
      

  8.   

    oracle自己的sql developer实验下,这个问题我自己有遇到过,以前别人也提到过。此类问题多半是因为同居使用OCI方式操作,而OCI操作不慎重,即可能出现这类问题。