An arithmetic, numeric, string, conversion, or constraint error occurred. For example, this error occurs if an attempt is made to assign the value NULL to a variable declared NOT NULL, or if an attempt is made to assign an integer larger than 99 to a variable declared NUMBER(2).

解决方案 »

  1.   

    付给变量的值的长度大于改变量定义的长度,将会抛出该异常
    例如:
    v_test varchar2(2);
    v_test := '234';
    就发生改错误。
      

  2.   

    那么 ... the Similar( ) function is from 0.0 to 100.0. 是什么意思呢?
      

  3.   

    没有道理阿,查出问题所在
    v_ret out varachar2;
    是存储过程定义的返回参数
    ...
    v_ret := v_ret||'第'||to_char(v_row)||'行';
    ...
    注释掉那一句就没问题了
    无论怎么样,v_ret都没有长度限制吧,怎么会出现那错误呢
    所谓的“The valid range for the threshold argument to the Similar( ) function is from 0.0 to 100.0. ”
      

  4.   

    http://www.itpub.net/
    最好的Oracle论坛
      

  5.   

    那个变量是v_ret out varachar2;
    是存储过程定义的返回参数没有长度限制?
      

  6.   

    Similar( ) 的参数范围是0-100,看看实际参数是否超出这个范围了?
      

  7.   

    CREATE OR REPLACE PROCEDURE     DF_P_TAB_COLUMN_CHECK (     
    ...
    p_ret     out      varchar2     
    )     
    ..begin 
       p_ret:=p_ret||' 第'||to_char(v_rows)||'行纵向';   
    exception when others then 
       insert into dd_error_log ....(sqlcode,SQLERRM等等)
    end ;
    我后来加了这个exception
    实际上就是这个异常,错误就是最上面贴的
    我也曾经把p_ret赋值前取length得到的是16,再加上这行就是23位(v_rows两位)难道varchar连23位都不能容纳吗?
      

  8.   

    是不是v_rows的问题,换成具体的值拭拭