我测试存储过程,将参数填入后,点击调试,结果提示ora-01480错误。
我估计是参数大小超过了变量范围。我调整了参数的长度,当参数长度为1843字节的时候就不会报错。我看了一下程序,这个变量是varchar2类型,varchar2应该能容纳4000字节啊。这是什么原因啊?

解决方案 »

  1.   

    1:你的Server字符集是什么?
    2:你传入了什么样的参数?
      

  2.   


    --比较一下:SQL> select length('测试123字符') from dual;LENGTH('测试123字符')
    ---------------------
                        7SQL> select lengthb('测试123字符') from dual;LENGTHB('测试123字符')
    ----------------------
                        11SQL> 
      

  3.   

    server的字符集是:
    NLS_CHARACTERSET:ZHS16GBK
    NLS_NCHAR_CHARACTERSET:AL16UTF16参数是包含字母、数字、汉字、以及|和^这样的符号,还有▲★之类的字符。
    我用select length('') from dual 测试了整个参数长度是2683,当我截取到1843个字节的时候才不报错。可能是什么原因啊?
      

  4.   

    用LENGTHB看一下输入参数的大小。