PL-00215:varchar2长度错误

时间:2016-10-04 09:45:40

标签: sql varchar2

我正在尝试做一件非常简单的事情:提取日期并对其进行一些控制。
一切都很好但是当我尝试编译这个错误弹出时我真的不知道如何解决它...
这是代码:

    function get_crediti_formativi_biennio(p_userid          varchar2,
                                         p_prof_abil       varchar2,
                                         p_id_persona      number,
                                         p_tipo_formazione number,
                                         p_anno_formazione varchar2,
                                         p_flag_calcolo    number,
                                         p_crediti_totali  out number)
    return varchar2 is
    v_count        number;
    v_anno         varchar2;
    v_biennio_from number;
    v_biennio_to   number;

    l_err_msg varchar2(1024) := '+OK0000 Operazione effettuata con successo';

  begin
    v_count := null;

    begin
      select TO_CHAR(ap.valore)
        into v_anno
        from intc_attr_persone ap
       where ap.id_attributo = 202
         and ap.id = p_id_persona;
    exception
      when no_data_found then
        v_anno := '';
    end;

    if v_anno >= 2015 and (mod(v_anno, 2) != 0) then
      if (mod(p_anno_formazione, 2) = 0) then
        v_biennio_from := p_anno_formazione;
        v_biennio_to   := p_anno_formazione + 1;
      else
        v_biennio_from := p_anno_formazione - 1;
        v_biennio_to   := p_anno_formazione;
      end if;
    else
      if v_anno < 2015 or v_anno = '' or v_anno is null then
        if (mod(p_anno_formazione, 2) = 0) then
          v_biennio_from := p_anno_formazione - 1;
          v_biennio_to   := p_anno_formazione;
        else
          v_biennio_from := p_anno_formazione;
          v_biennio_to   := p_anno_formazione + 1;
        end if;
      end if;
    end if;

问题在于v_anno .....

0 个答案:

没有答案