查一下to_char,就知道错误了;SQL> select 'AA' || 22 S from dual;S
--------
AA22Executed in 0.015 secondsSQL> 

解决方案 »

  1.   

    to_char 会在结果前加上一个空格,其实是省略了"+",如果是负数的话是就是"-"
    这样d_carid || to_char(d_beginid);
    结果串中间就多个空格,会报错.
      

  2.   

    我认为错误在于,你的 d_carids varchar2(20); d_carids := d_carid || to_char(d_beginid);
    得到的字符串超长了,你把 d_carids varchar2(20);  改为 d_carids varchar2(40); 
      

  3.   

    你这两个字符一样长
    d_carid varchar2(20);
    d_carids varchar2(20);
    可能为超出长度范围