Trim接出字符串两边的空格,传Trim*(' ')也就是将一个空值传入,ORACLE会认为这是一个无效的参数,所以会报错!

解决方案 »

  1.   

    如果必须传空格,可以试一下
    nvl(trim(' '),chr(9))
      

  2.   

    v_str varchar2(20) := Trim(p_str);
    在过程中将对v_str的操作处改为nvl(trim(v_str),chr(9))试一下
      

  3.   

    我在2000下的oracle8.1.6中也遇过这样问题,但在一台UNIX下的8.1.6下却是可以的。后来把trim改为ltrim就可以了。郁闷
      

  4.   

    也可能是你的包里面的操作对空格有问题,这样试一下v_str varchar2(20);
    select nvl(trim(v_str),chr(9)) into v_str from dual;
      

  5.   

    已经解决了,确实应该用select trim(v_str) into v_str from dual;
    非常谢谢你!