下面的二段语句作用相同,只是长度不同,有一个报错另一个没有错误if :query_find.back_status is not null then
v_add_having := 'having ((''已到款'' = ''已到款'' and ((NVL(cip.amount_present_documents,0) - nvl(sum(oms_ra_pkg.get_invl_apply_amount(cil.ci_line_id,
                                                 trunc(sysdate))),0)) <= 0) and (nvl(sum(oms_ra_pkg.get_invl_apply_amount(cil.ci_line_id,
                                                 trunc(sysdate))),0) <> 0))                
                 
                  OR (''未到款'' = ''未到款'' and ((NVL(cip.amount_present_documents,0) - nvl(sum(oms_ra_pkg.get_invl_apply_amount(cil.ci_line_id,
                                                 trunc(sysdate))),0)) <= 0) and (nvl(sum(oms_ra_pkg.get_invl_apply_amount(cil.ci_line_id,
                                                 trunc(sysdate))),0) = 0))                            
                                                 ) ';
     
else
v_add_having := null;
end if;
if :query_find.back_status is not null then
v_add_having := 'having (('''||:query_find.back_status||''' = ''已到款'' and ((NVL(cip.amount_present_documents,0) - nvl(sum(oms_ra_pkg.get_invl_apply_amount(cil.ci_line_id,
                                                 trunc(sysdate))),0)) <= 0) and (nvl(sum(oms_ra_pkg.get_invl_apply_amount(cil.ci_line_id,
                                                 trunc(sysdate))),0) <> 0))
               
                  OR ('''||:query_find.back_status||''' = ''未到款'' and ((NVL(cip.amount_present_documents,0) - nvl(sum(oms_ra_pkg.get_invl_apply_amount(cil.ci_line_id,
                                                 trunc(sysdate))),0)) <= 0) and (nvl(sum(oms_ra_pkg.get_invl_apply_amount(cil.ci_line_id,
                                                 trunc(sysdate))),0) = 0))  
                  OR ('''||:query_find.back_status||''' = ''未到款'' and ((NVL(cip.amount_present_documents,0) - nvl(sum(oms_ra_pkg.get_invl_apply_amount(cil.ci_line_id,
                                                 trunc(sysdate))),0)) <= 0) and (nvl(sum(oms_ra_pkg.get_invl_apply_amount(cil.ci_line_id,
                                                 trunc(sysdate))),0) = 0))                                 
                                                 ) '; else
v_add_having := null;
end if;第一就没有问题,而第二个就会提示 ora-01403错误对于二个sql的区别就是长度不同,请问有人碰到类似的问题吗