改为  temp_str varchar2(10)就OK了!

解决方案 »

  1.   

    1、定义变量一定要定义长度吗?
    2、varchar2和 varchar2(10)和 varchar,varchar(10)的区别在哪里?
      

  2.   

    定义char、varchar或varchar2字符型变量时,一定要定义长度。
    定义数值型变量则不用。
    如:
     n number; --默认为number(38);
     n int;
     c char(5);
     c1 varchar(5); 
     c2 varchar2(5);
      

  3.   

    我觉得从varchar,varchar2两者本身作用来说,一样。
    用法有点区别
      

  4.   

    我觉得varchar 和 varchar2本身表示的意义没有什么区别
    只是输入参数p_TYBM in varchar2,p_NF in varchar2 是varchar2,
    当在SQL语句中附值时(temp_str := p_TYBM;),就需要变量和参数的类型一致
      

  5.   

    varchar是ORACLE要淘汰的一种类型,varchar2是接替varchar的